java学习_part01_java核心卷_day01_注释&数据类型&运算符&字符串
a1.注释
1.1 单行注释
//
1.2 多行注释
/*
*/
1.3 文档注释
/**
*/
2.数据类型
2.1 基本数据类型
| 数据类型 | 存储需求(字节) | 取值范围 |
|---|---|---|
| byte | 1 | -128-127 |
| short | 2 | -32768-32767 |
| int | 4 | -2147473648-2147483647,刚好超过20亿,最常用 |
| long | 8 | 略 |
| float | 4 | 略,很少使用 |
| double | 8 | 略 |
| boolean | 1 | 略 |
| char | 2 | \u0000-\uffff,0-65535,建议不使用 |
注:
-
java中没有任何无符号形式的int,long,short,byte类型
-
byte<short=char<int<long<float<double,小容量转大容量自动类型转换,大容量转小容量,可能损失精度
-
若字面值未超过byte,short,char类型的取值范围,可以直接赋值,如char a = 97
-
byte,char,short混合运算时,各自转换成int,再运算
-
多种数据类型进行混合运算,先转换成容量最大的,再运算
-
char类型补充:
- 编码标准:美国ASCII,西欧语言ISO8859-1,中国GB8030,BIG-5等
- Unicode1.0采用16位字符集,65535个字符
- 码点(code point):编码表中某个字符对应的代码值.Unicode中采用十六进制书写,加前缀U+,例如U+0041代表A
- Unicode码点分为17个代码级别,第一级别为基本多语言级别,从U+0000-U+FFFF,包括经典的Unicode编码,其余16个级别从U+10000-U+10FFFF,包括一些辅助字符.
- 未完全理解,待续...
2.2 引用数据类型
- 类
- 接口
- 数组
- 字符串
- 枚举
- ...
2.3 null类型
null引用为null类型的唯一取值,null可以转化为任意引用类型
3.运算符
3.1 位运算
处理整数类型时,可以直接对整数各个位完成操作.可以使用掩码技术得到各个位
| 运算符 | 说明 |
|---|---|
| & | 按位与 |
| | | 按位或 |
| ^ | 按位异或 |
| ~ | 按位取反 |
| >> | 带符号右移,正数右移高位补0,负数右移高位补1 |
| >>> | 无符号右移,高位统统补0 |
3.1.1补充
转自[https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html]
| 概念 | 说明 |
|---|---|
| 机器数 | 一个数在计算机中的二进制表示,叫做这个数的机器数,如-3机器数为10000011 |
| 真值 | 将带符号位的机器数对应的真正数值称为机器数的真值,如10000011为带符号机器数,真值为-0000001=-3,而不是131 |
| 原码 | 符号位加上真值的绝对值,第一位表示符号位,如-1=1000001,原码范围1111111-01111111=-127-127 |
| 反码 | 正数反码是本身,负数反码符号位不变,其余位取反,如-1反码=11111110 |
| 补码 | 正数补码是本身,负数补码是反码基础上加1,如-1补码=11111111 |
说明:
- 原码,反码范围为-127-127,补码范围为-128-127,因为原码,反码中0000 0000,1000 0000均表示0,补码用0000 0000表示0,用1000 0000表示-128.
- 计算举例,计算机计算过程为带符号运算:
(-1) + (-127) = 原码1000 0001+原码1111 1111 = 补码1111 1111+补码1000 0001 = 补码1000 0000 = -128(不用求原码,因为-128只有补码表示) - 补码-->原码:符号位不变,其他按位取反再加1,即补码的补码是原码
3.2 逻辑运算
| 运算符 | 说明 |
|---|---|
| && | 短路与,从左到右运算,碰到false则停止运算 |
| || | 短路或,从左到右运算,碰到true则停止运算 |
| & | 逻辑与,从左到右运算,全运算 |
| | | 螺距或,从左到右运算,全运算 |
| ! | 逻辑非 |
| ^ | 逻辑异或 |
3.3 其他重要运算符
-
instanceof
语法:boolean result = obj instanceof Class
注:
- obj为引用类型
- obj如果为null,则返回false
- obj可以为class类实例对象,class接口的实现类,class类的直接或间接子类
4.字符串
java字符串就是Unicode字符序列
4.1 String
4.1.1 常用方法
| 常用方法类型 | 具体方法 |
|---|---|
| 构造方法 | String("") String(char[] array) String(Byte[] array) |
| 比较 | equals(Object obj) 建议采用"abc".equals(),避免空指针异常 equalsIgnoreCase() startsWith(String str):判断是否以str开头 |
| 获取字符,或某个结果 | length() charAt(int index) indexOf(String str) |
| 获取新串 | subString(int index):index到结尾的新子串 subString(int begin, int end):begin到end-1的新子串 trim():去掉左右空格的新串 concat(String str):拼接得到的新串 String.join(多个串):静态方法,得到拼接串 String.jon(拼接符号,字符串数组):拼接成新串 |
| 转换 | toCharArray() replace(oldString, newString):用新串代替字符串中的旧串 |
| 分割 | split(regex):根据正则表达式切分 |
| 其他 | contains(String str) String.valueOf():静态方法,把不是字符串的基本数据类型转化为字符串 |
4.1.2 注意事项
-
String s = "abc" ,创建的字符串如果在常量池中已经存在,则不会重新创建,字符串为不可变类型,可以共享
-
==和equals
基本数据类型 引用数据类型 == 数值比较 比较是否指向同一个对象 equals 无法比较 默认使用==,通过重写该方法进行定义比较
字符串,包装类已重写该方法,可用于比较数值 -
空串与null
注意事项 空串:长度为0的字符串 判断空串:if(str.length()==0) if(str.equals("")) null 判断null:if(str==null) 判断非空非null:
if(str!=null&&str.length()!=0)
4.2 StringBuilder&StringBuffer
StringBuilder非线程安全,但是性能高,StringBuffer线程安全,性能低,用于多线程
4.2.1常用方法
- append():可以届char,String
- toString():返回字符串
- setCharAt(int index, char c):设定指定位置字符
- insert(int offset, String str):指定位置插入字符串
- deleteCharAt(int index)
- delete(int start, int end)
- reverse():翻转字符串

浙公网安备 33010602011771号