最近经历比较乱,但生活还得继续,博客还得继续写,技术还得提高。决定好好撸一波Java基础,着重自己记得不清楚和理解模糊的地方。
数据类型
Java有8大基本类型:4种整型,2种浮点类型,1种字符类型,1种布尔类型(即 byte,short,int,long,float,double,char,boolean)。
这些类型的存储需要多少个字节?字符和字节有啥区别?
类型 | 存储需求(字节) |
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
字节是存储容量的基本单位,1字节=8个二进制位。 字符是指字母、数字、汉字和各种符号。一个字符在计算机中用若干个字节的二进制数表示,西文字符1个字节,中文字符2个字节。
运算符
参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。
例如:15/2 = 7 15.0/2 = 7.5 15/2.0 = 7.5
三元表达式 condition?expression1:expression2
即当条件为condition为真时计算第1个表达式,否则计算第2个表达式。
例如 x < y ? x : y
返回x、y中较小的那个值。
位运算符 &(与)、 |(或)、 ^ (异或)、~(非)、<<(左移)、 >>(右移)
计算规则:转为二进制对每个位进行运算
数值类型之间的转换 小转大肯恩恶搞出现精度损失,大转下需要进行强转
实心箭头表示无信息丢失的转换,虚线箭头表示可能有精度损失的转换。
字符串
子串
就是从大的字符串里抽出部分形成新的字符串,使用方法substring()。
例如
String str = "Help":
String s = str.substring(0,3);
此时的结果是一个Hel的字符串,0、3是一个左闭右开的区间。即substring()方法的参数是左闭右开的。
拼接
使用+号进行连接(刚开始看到这个加号总感觉怪怪的,看到了这个就不感觉怪了,要习惯)
不可变字符串
String类对象称为不可变字符串,即根据以上代码,定义了str为help,她就是help,如果你要想改为helper,你可以得到字串然后拼接,但str还是help,只能新定义str1,即str1为helper也就是不可变字符串。
检查字符串是否相等
equals方法很熟悉,这里要提的是另外一个不区分大小写的
equalsIgnoreCase方法
空串和Null串
判断一个字符串是否为空
if(str.length == 0)或者if(str.equals(""))
判断一个字符串既不是空串也不为null
if(str != null && str.length() != 0)
控制流程
这里主要说一下switch语句
switch语句将从与选项值相匹配的case标签处开始执行直到遇到break语句,我就经常丢掉break,或者执行到switch语句的结束处为止。如果没有相匹配的case标签,而有default子句,就执行这个子句。
还有一个是增强for循环
for (variable : collection) statement
即遍历collection中的所有variable。
大数值
BigInteger和BigDecimal
主要是我在做项目的时候使用过这个,应该第二个使用的相对多一点,了解一下对应的api就可以了。
说下普通数值转为大数值,直接使用静态的valueof()即可。
数组
只想说下定义,因为我老是写错,哈哈,后期可以就这个讨论一下排序,这个好像蛮有趣的。
int [] a;
或
int[] a = new int[100];
时间格式化及DecimalFormat格式化
主要是设置格式化的样式
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
最后调用sdf.format(date);(date为Data的对象)
类似,
private static final DecimalFormat DF_KPJE = new DecimalFormat("0.00");
最后调用DF_KPJE.format(string);(String为对应数值的字符串)
后记:这些东西都会不定期补充说明的,因为要学的太多啦。
有同样的小白欢迎加群啊,博客左侧QQ群了解一下!!!