Day03_java基础知识
Day03_java基础知识
数据类型
long类型要在数字后加L,例:
long num1 = 10L;
float类型要在数字后加F,例:
folat num2 = 20.1F;
整型扩展
进制
二进制:0b
八进制:0
十六进制:0x
浮点数扩展
最好完全避免使用浮点数进行比较
利用BigDecimal表示大数。
字符拓展
c1,c2均是字符a。
char c1 = 'a';
char c2 = '\u0061';
转义字符:\
类型转换
由于java是强类型语言,所以进行有些运算时,需要用到类型转换。
低—————————————————————>高
byte,short,char —> int —> long —>float —>double
高->低:强制转换。
低->高:自动转换。
强制转换时出现的问题
内存溢出
int i =128;
byte b = (byte)i;
结果:i =128,b=-128。
原因是强制转换时内存溢出。
注意点
- 不能对布尔值进行转换。
- 不能把对象类型转换成不相干的类型。
- 在把高容量转换到低容量的时候,强制转换。
- 转换的时候可能存在内存溢出,或者精度问题。
JDK7新特性:数字之间可以用下划线分割。
int a = 10_0000_0000;
int b = 20;
int total1=a*b;
long total2=a*b;
long total3=a*((long)b);
total1,total2的值均会出现异常,total3的值正常。
total1的原因是内存溢出,total2的原因是先内存溢出,后进行的类型转换。计算total3时,对b进行类型转换,将整个式子进行了提升,相乘结果为long类型。
变量
修饰符不存在先后顺序。
常量:大写字母和下划线。
类名:首字母大写和驼峰原则。
tips:crtl+D:复制当前行到下一行。
基本运算符
基本运算后,结果类型会自动升型,如果运算因子有一个类型为long,则结果类型为long,如果两个运算因子类型为byte或short,结果类型为int。
短路运算
当逻辑运算符&&遇到第一个条件即为假时,直接返回结果为假。
public class Demo05{
public static void main(String[] args){
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
输出结果为:false
5
这是因为c<4已为假,故d直接赋值false,c++<4未运行。
位运算符
>> 相当于乘以2
<< 相当于除以2
优点是效率极高
2*8最快的运算方式:2>>3
字符串链接符
public class Demo06{
public static void main(String[] args){
int c=5;
int d=6;
System.out.println(""+c+d);
System.out.println(c+d+"");
}
}
输出为56
11
这是由于""+
在前面会默认把后面的数据当作字符串处理,c+d在前面会先运算两个整数相加。
三元运算符
public class Demo07{
public static void main(String[] args){
int c=50;
int d=80;
string type1=c<60?"不及格":"及格";
string type2=d<60?"不及格":"及格";
System.out.println(type1);
System.out.println(type2);
}
}
输出:不及格
及格
包机制
代码在某个包下:package pkg1.pkg2.pkg3;
导入某个类:import pkg1.pkg2.pkg3.classname;
导入所有包,用通配符:import pkg1.pkg2.pkg3.*;
JavaDoc
javaDoc命令是用来生成自己API文档的。
javadoc -encoding UTF-8 -charset UTF-8 hello.java