1.总览:注释,数据类型,变量,运算符,字符串,输入输出,流程控制,大数值,数组
2.分析:
2.1 注释:单行注释,多行注释,文本注释
2.2 数据类型: 基本数据类型与引用数据类型
基本数据类型:
- 整型
- 浮点型
- 字符型
- 布尔型
引用数据类型:
- String
- Object类
- 接口
2.3 变量: 变量和常量
变量:初始化值,变量命名
常量:大写,用final修饰,值不可变
2.4 运算符: + - * % ,自动类型提升,强制类型装换,自增和自减
如果运算符得到一个值 , 其类型与左侧操作数的类型不同 , 就会发生强制类型转换
/**如果i 是一个 int , 则以下语句
i + = 3.5 ;
是合法的 , 将把 i 设置为 ( int ) ( i + 3.5 )。*/
int i = 3;
i+=3.5;
System.out.println(i+=3.5); //打印6
int m = 1; //整数除以0会发生异常
System.out.println(m/0); //发生异常 by zero
float n = 1.0F;//浮点数除以0会变为无穷大
System.out.println(n/0); //打印 infinity
int类型的正数边界值(最大值)如果再加1,就会超出int的范围,数值溢出,数字会变为int类型的负数边界值(最小值),即:从最小值重新计数
int类型的负数边界值(最小值)如果减1,就会超出int的范围,数值溢出,数字会变为int类型的正数边界值(最小值),即:从最大值重新计数
int o = 2147483647;//int 类型的正数最大值
System.out.println(o+1); //数值溢出从最小值开始计数
int o1 = -2147483648;//int 类型的负数最小值,int的反向最大值
System.out.println(o1-1); //数值溢出从最大值开始计数
byte aa = 127; //byte类型的最大值
byte aaa = (byte)(aa+3); // 最大值 +3 ,数据溢出
System.out.println(aaa); //打印 -126,到达byte类型的反向最大值,再开始计数,即为 -126
小结:java中关于数据溢出,也就是某一个数据类型的最大值+1,或最小值-1,即数值超出数据类型的范围时,就会溢出,同时会到达该数据类型的反向最大值,然后从反向最大值开始计数
参考:
https://www.cnblogs.com/cellular-automaton/p/6863123.html
2.5 字符串:String,StringBuffer,StringBuilder,不可变字符,equals,拼接,String API
String是不可变字符,不能修改
StringBuffer:多线程,性能比StringBuilder低
StringBuilder:单线程,多线程时线程不安全,效率比StringBuffer高
字符判断相等用 equals,不能用 == ,因为 == 是判断字符串值相等并且在同一个位置时才相等,也就是同一个字符串时才相等
空字符串与null串
2.6 输入输出: Scanner ,注意IO异常,有可能读取的文件位置不存在或者文件不再该路径下
Scanner in = new Scanner ( System . in )
2.7 流程控制:
- if ,
- if else,
- if else if ... else,
- while,
- do while,
- for 循环,
- for each,
- switch() .. case .. break;
2.8 大数值:Biglnteger 和 BigDecimaL
2.9 数组:数组初始化,for循环,数组拷贝,数组排序,多维数组,不规则数组,不规则数组
网友评论