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,建议不使用

注:

  1. java中没有任何无符号形式的int,long,short,byte类型

  2. byte<short=char<int<long<float<double,小容量转大容量自动类型转换,大容量转小容量,可能损失精度

  3. 若字面值未超过byte,short,char类型的取值范围,可以直接赋值,如char a = 97

  4. byte,char,short混合运算时,各自转换成int,再运算

  5. 多种数据类型进行混合运算,先转换成容量最大的,再运算

  6. 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 注意事项

  1. String s = "abc" ,创建的字符串如果在常量池中已经存在,则不会重新创建,字符串为不可变类型,可以共享

  2. ==和equals

    基本数据类型 引用数据类型
    == 数值比较 比较是否指向同一个对象
    equals 无法比较 默认使用==,通过重写该方法进行定义比较
    字符串,包装类已重写该方法,可用于比较数值
  3. 空串与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():翻转字符串
posted @ 2020-12-25 22:27  OLeeO97  阅读(96)  评论(0)    收藏  举报