2.基础语法

2.1 关键字、保留字、标识符

/*
1.关键字1.1 关键字是被Java语言赋予了特殊含义,用做专门用途的字符串(单词),如:class、int1.2 关键字中所有字母都为小写
2.保留字2.1 保留字是现Java版本尚未使用,但以后版本可能会作为关键字使用,如:goto、const
3.标识符3.1 凡是自己可以起名字的地方都叫标识符3.2 涉及到的结构:包名、类名、接口名、变量名、方法名、常量名3.3 标识符规则3.3.1 由26个英文字母大小写,0-9,_或&组成3.3.2 数字不可以开头3.3.3 不可以使用关键字和保留字,但能包含关键字和保留字3.3.4 Java中严格区分大小写,长度无限制3.4 标识符规范3.4.1 包名:多个单词组成时所有字母都小写:xxxyyyzzz3.4.2 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz3.4.3 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz3.4.4 常量名:所有字母都大写。多单词时每个单词用下划线链接:XXX_YYY_ZZZ3.5 在起名时,为了提高阅读性,要尽量做到"见名知意"。*/

2.2 数据类型

public class Main {public static void main(String[] args) {/*
1.基本数据类型(基本数据类型的值是数据)1.1 数值型1.1.1 整型1.1.1.1 byte 1字节1.1.1.2 short 2字节1.1.1.3 int 4字节1.1.1.4 long 8字节 必须以"l"或"L"结尾1.1.1.5 整型常量默认类型是int;通常定义整型变量也是使用int*/byte b=10;short s=10;int i=10;long l=1111000000000L;
/*1.1.2 浮点型1.1.2.1 float 4字节 必须以"f"或"F"结尾1.1.2.2 double 8字节1.1.2.3 浮点型常量默认类型为double;通常定义浮点型变量时使用double*/float f=1.0f;double d=1.0;
/*1.2 字符型 char 2字节*/char c='A';
/*1.3 布尔型 boolean*/boolean bln=true;
/*
2.引用数据类型(引用数据类型的值是地址)2.1 类 String*/String name="fy";}
}

2.3 变量的使用

public class Main {public static void main(String[] args) {/*
1.定义变量的格式1.1 数据类型 变量名=变量值;1.2 数据类型 变量名;变量名=变量值;*/int i=10;double d;d=10.0;
/*
2.变量使用的注意点:2.1 变量必须先声明,后使用2.2 变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了2.3 同一个作用域内,不可以声明两个同名的变量
3.基本数据类型变量间的运算规则3.1 自动类型转换(只涉及除了boolean之外的其他7中基本数据类型):3.1.1 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型3.1.2 byte 、char 、short --> int --> long -->float --> double3.1.3 特别地,当byte、char、short三种类型的变量做运算时,结果为int型3.2 强制类型转换(只涉及除了boolean之外的其他7中基本数据类型):自动类型提升运算的逆运算:3.2.1 需要使用强转符:()3.2.2 强制类型转换,可能导致精度损失*/}
}

2.4 运算符

/*
1.算术运算符:++ -- + - * / %
2.赋值运算符:= += -= *= /= %=2.1 不会改变变量本身的数据类型
3.比较运算符(关系运算符):== != > < >= <= instanceof3.1 结果是boolean类型3.2 > < >= <=只能使用在数值型之间3.3 == !=不仅可以使用在基本数据类型之间,还可以使用在引用类型变量之间3.3.1 ==在基本数据类型中比较的是值3.3.2 ==在引用类型变量中比较的是地址(其实地址就是引用类型变量的值)
4.逻辑运算符:& | ^ ! && ||4.1 不短路的逻辑运算符:& | ^ !4.2 短路的逻辑运算符:&& ||4.3 逻辑运算符操作的都是boolean型,而且结果也是boolean型
5.位运算符:<<  >> >>> &  |  ^  ~5.1 位运算符操作的都是整型
6.三元运算符:(条件表达式)? 表达式1 : 表达式26.1 条件表达式的结果为boolean型6.2 根据条件表达式真或假,决定执行表达式1,还是表达式2.6.2.1 如果表达式为true,则执行表达式1。6.2.2 如果表达式为false,则执行表达式2。6.3 表达式1和表达式2要求是一致的*/

2.5 流程控制

/*
1.顺序结构:程序从下到上执行
2.分支结构:2.1 单分支 if(){ }2.2 双分支 if(){ }else{ }2.3 多分支 if(){ }else if(){ }else{ }2.4 switch-case选择结构:2.4.1 switch-case选择结构格式:switch (表达式){case 常量1:执行语句1;break;case 常量2:执行语句2;break;case 常量3:执行语句3;break;default:执行语句n;break;}2.4.2 switch结构中的表达式,只能是:byte 、short、char、int、枚举类型、String2.4.3 case之后只能声明常量,不能声明范围2.4.4 break关键字是可选的2.4.5 default结构是可选的,而且位置是灵活的
3.循环结构3.1 while(){ }3.2 do{ }while( );3.3 for( ; ; ){ }*/

2.6 Scanner类

public class Main {public static void main(String[] args) {/*
1.Scanner的实例化*/Scanner scanner = new Scanner(System.in);
/*
2.调用Scanner类的相关方法2.1 需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException导致程序终止。*/System.out.println("请输入你的名字");String name = scanner.next();System.out.println(name);
/*2.2 对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串*/System.out.println("请输入你的性别");String gender = scanner.next();char genderChar=gender.charAt(0);System.out.println(genderChar);System.out.println("请输入你的年龄");int age=scanner.nextInt();System.out.println(age);System.out.println("请输入你的体重");double weight=scanner.nextDouble();System.out.println(weight);System.out.println("我在假装不痛吗?");boolean isTong=scanner.nextBoolean();System.out.println(isTong);}
}

2.7 数组

public class Main {public static void main(String[] args) {/*
1.数组的理解:数组(Array),是多个相同类型的数据按一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理
2.数组相关的概念:2.1 数组名2.2 数组元素2.3 角标2.4 数组的长度:数组元素的个数
3.数组的特点:3.1 数组是顺序排列的3.2 数组属于引用数据类型的变量。数组元素既可以是基本数据类型也可以是引用数据类型3.3 创建数组对象会在内存中开辟一整块连续的空间3.4 数组一旦初始化,其长度就是确定的;数组的长度一旦确定,就不能修改
4.数组的分类:4.1 按维数分:4.1.1 一维数组4.1.2 二维数组4.2 按数组元素类型分:4.2.1 基本数据类型元素的数组4.2.2 引用数据类型元素的数组*/
/*
5.一维数组5.1 一维数组的初始化*///5.1.1 静态初始化:数组初始化和数组元素的赋值操作同时进行int[] ints = new int[]{1001, 1002, 1003, 1004};//5.1.2 动态初始化:数组的初始化和数组元素的赋值操作分开进行String[] names = new String[5];//5.1.3 类型推断int[] arr = {1, 2, 3, 4, 5};
/*5.2 一维数组元素的引用:通过角标的方式引用(角标从0开始的,到数组的长度-1结束)*/names[0] = "王铭";names[1] = "王赫";names[2] = "张学良";names[3] = "孙居龙";names[4] = "王宏志";
/*5.3 一维数组的属性:length*/System.out.println(names.length);
/*5.4 一维数组的遍历*/for (int i = 0; i < names.length; i++) {System.out.print(names[i] + " ");}System.out.println();
/*5.5 一维数组元素的默认初始化值5.5.1 数组元素是整型:05.5.2 数组元素是浮点型:0.05.5.3 数组元素是char型:0或'\u0000',而非'0'5.5.4 数组元素是boolean型:false5.5.5 数组元素是引用数据类型:null5.6 一维数组的内存解析*/

/*
6.二维数组6.1 如何理解二维数组?6.1.1 数组的元素也是引用数据类型6.1.2 一个一维数组A的元素如果还是一个一维数组类型的,则此数组A称为二维数组6.2 二维数组的初始化*///6.2.1 静态初始化int[][] arr1=new int[][]{{1,2,3},{4,5},{6,7,8}};//6.2.2 动态初始化//6.2.2.1 动态初始化1String[][] arr2=new String[3][2];//6.2.2.2 动态初始化2String[][] arr3=new String[3][];//6.2.3 类型推断int[][] arr4={{1,2,3},{4,5},{6,7,8}};
/*6.3 二维数组元素的引用*/System.out.println(arr1[0][1]);//2System.out.println(arr2[1][1]);//nullarr3[1]=new String[4];System.out.println(arr3[1][0]);//nullSystem.out.println(arr3[0]);//null
/*6.4 二维数组的属性*/System.out.println(arr1.length);//3System.out.println(arr1[0].length);//3System.out.println(arr1[1].length);//2
/*6.5 二维数组的遍历*/for(int i=0;i<arr1.length;i++){for(int j=0;j<arr1[i].length;j++){System.out.print(arr1[i][j]+" ");}System.out.println();}
/*6.6 二维数组元素的默认初始化值6.6.1 二维数组分为外层数组的元素和内层数组的元素,比如:int[][] arr = new int[4][3];外层元素:arr[0],arr[1]等内层元素:arr[0][0],arr[1][2]等6.6.2 数组元素的默认初始值6.6.2.1 针对于动态初始化方式一:比如:int[][] arr = new int[4][3];外层元素的初始化值为:地址值内层元素的初始化值为:与一维数组默认初始化值相同6.6.2.2 针对于动态初始化方式二:比如:int[][] arr = new int[4][];外层元素的初始化值为:null内层元素的初始化值为:不能调用,否则报错。6.7 二维数组的内存解析*/

/*
7.数组的赋值与复制*/int[] array1,array2;array1=new int[]{1,2,3,4};//7.1 数组的赋值//7.1.1 如何理解:将array1保存的数组的地址值赋给了array2,使得array1和array2共同指向堆空间中的同一个数组实体//7.1.2 内存解析array2=array1;

 //7.2 数组的复制//7.2.1 如何理解:我们通过new的方式,给array2在堆空间中新开辟了数组的空间。将array1数组中的元素值一个一个的赋值到array2数组中//7.2.2 内存解析array2=new int[array1.length];for(int i=0;i<array2.length;i++){array2[i]=array1[i];}

/*
8.Arrays工具类的使用*///8.1 equals():判断两个数组是否相等int[] ints1=new int[]{4,3,2,1};int[] ints2=new int[]{4,3,2,1};System.out.println(Arrays.equals(ints1, ints2));//true//8.2 toString():输出数组信息System.out.println(Arrays.toString(ints1));//[4, 3, 2, 1]//8.3 sort():对数组进行排序Arrays.sort(ints1);System.out.println(Arrays.toString(ints1));//[1, 2, 3, 4]//8.4 fill():将指定值填充到数组之中Arrays.fill(ints1,10);System.out.println(Arrays.toString(ints1));//[10, 10, 10, 10]//8.5 binarySearch():二分查找int[] ints3=new int[]{-98,-34,2,34,54,66,79,105,210,333};int index=Arrays.binarySearch(ints3,210);if(index>=0){System.out.println("找到了");}else {System.out.println("未找到");//找不到返回的是负数}
/*
9.数组常见异常*///9.1 数组角标越界异常:ArrayIndexOutOfBoundsException
/*        int[] ints5=new int[]{1,2,3,4,5};System.out.println(ints5[-1]);System.out.println(ints5[5]);*///9.2 空指针异常:NullPointerException
/*        int[][] ints6=new int[5][];System.out.println(ints6[0][0]);String[] s1 = new String[]{"AA","BB","CC"};s1[0] = null;System.out.println(s1[0].toString());*/}
}

第02章_java基础语法相关推荐

  1. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

  2. 第02章 PyTorch基础知识

    文章目录 第02章 Pytorch基础知识 2.1 张量 2.2 自动求导 2.3 并行计算简介 2.3.1 为什么要做并行计算 2.3.2 CUDA是个啥 2.3.3 做并行的方法 补充:通过股票数 ...

  3. python中 1.34e3_Python快速编程入门——第2章 Python基础语法

    第2章 python基础语法 一.基本语法 二.变量和数据类型 三.标识符和关键字 四.简单数值类型 一.基本语法 注释:Python的注释是用# 不像C/C++使用的是//或者/*/.多行注释好像挺 ...

  4. PHP全站开发工程师-第04章 PHP基础语法

    第二阶段(后端) 25天 144学时 第04章 PHP基础语法(12) [学习课时] 本章共需要学习12 课时 [目的要求]  掌握PHP的基本语法结构 掌握PHP变量的使用和特征 掌握PHP运算符的 ...

  5. JavaSE入门0基础笔记 第二章Java基础语法

    JavaSE入门0基础笔记 第二章Java基础语法 1.运算符 1.1算术运算符 1.1.1运算符和表达式 1.1.2 算术运算符 1.1.3字符的"+"操作 1.1.4 字符串中 ...

  6. 【python第一章 基础捋顺,第二章 python基础语法】

    第一章 基础捋顺,第二章 python基础语法 第一章 基础捋顺 第二章 python基础语法 2.1输入输出 2.2代码注释 2.3代码缩进 2.4命名规范 2.5变量 2.6基本数据类型 2.7数 ...

  7. JavaSE_第2章 Java基础语法

    JavaSE_第2章 Java基础语法 今日内容 数据类型 运算符 学习目标 了解进制 理解基本数据类型的自动类型转换 理解基本数据类型的强制类型转换 了解ASCII编码表和Unicode编码表 理解 ...

  8. 第2章 Java基础语法

    JavaSE_第2章 Java基础语法 学习目标 会使用单行注释和多行注释 能够辨识关键字 理解标识符的含义,正确定义标识符 理解Java中的基本数据类型分类 能够理解常量的概念 能够定义8种基本数据 ...

  9. java 基本语法与流程控制_Java基础语法之控制流程

    Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}&qu ...

最新文章

  1. 前端开发学习Day27
  2. Intellij IDEA中使用Protobuf的正确姿势
  3. android PendingIntent参数详细解析
  4. MyBatis增删改示例——MyBatis学习笔记之二
  5. 沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化測试“星云測试“的使用攻略...
  6. Docker容器网络解析
  7. 如何看待阿里巴巴推荐的Python400集视频?零基础入门学习Python
  8. angular.js入门基础(一)
  9. (转)Windows Form Application 读取并修改App.config文件
  10. 卫星通信术语名词备忘记录
  11. VB2010(24)窗体用户控件
  12. 语音转文字 mp3 text
  13. 应用开发框架之——数据字典、原数据、模板
  14. 影响你成功最重要的两种人
  15. 基于SSH的客户关系管理系统
  16. excel怎么批量插行_excel如何批量在文字前加上固定文字
  17. 数字记忆好方法:数字编码
  18. 英雄联盟龙的传人皮肤爬虫
  19. log4j不打印日志的问题解决方式一
  20. python 字典的学习

热门文章

  1. 渡课学习总结2018.7.18
  2. 万字长文讲解:什么是「抽象」?
  3. php如何实现热敏58mm小票打印机打印?
  4. rk嵌入式 实现多路窗口0拷贝gpu渲染
  5. 杭电OJ 青年歌手大奖赛_评委会打分
  6. 无法打开计算机上的event log服务,解决Win7 Windows Event Log服务无法启动问题
  7. 微信开发者工具实现监听效果
  8. 【洛谷】P1803 凌乱的yyy 题解
  9. matlab 软启动程序,基于MATLAB的电动机软启动控制系统的仿真
  10. Java 后端国际化设计方案