欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java基础知识补充(一)

程序员文章站 2022-05-13 22:02:14
...

环境变量配置

jdk与jre区别:
        jdk:开发工具包(jre+开发工具包)
        jre:Java运行环境(jvm+核心类库)

path与classpath的区别:
        path环境变量里面记录的是可执行文件,如.exe文件,对可执行文件先在当前路径去找,如果没有找到就去path环境变量中配置的路径去找
        classpath环境变量里记录的是Java类的运行文件所在的目录

数据类型

基本数据类型:

类型 所占字节 取值范围
byte 1 -128~127
short 2 -215~215-1
int 4 -231~231-1
long 8 -263~263-1
float 4
double 8
char 2 0~65535
boolean 未规定

’'中必须放的是单个字符,10代表的是1字符和0字符
''中什么也不放也不可以,因为什么都代表不了
用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
float的取值范围大于long

标识符命名:

  1. 可以包含数字,字母,下划线(_),美元符号($),但不能以数字开头
  2. 严格区分大小写
  3. 不能包含Java关键字和保留字
  4. 最好能做到见名知意

方法和变量名的命名规则:

  1. 满足标识符命名规则
  2. 符合驼峰法命名规范(如果是一个单词,每个字母都小写,如果是多个单词,从第二个单词开始首字母大写)
    尽量简单,做到见名知意
  3. 变量名的长度没有限制

类或接口的命名规则:
      满足Pascal命名法规范(一个单词首字母大写,多个单词,每个单词的首字母大)

包:
        包名要求全部小写,一般是公司的域名倒着写
常量:
        如果是一个单词,所有字母大写,如果是多个单词也是所有字母大写,但是用_分开

类型转换

二进制:以0b开头
八进制:以0开头,包括0-7的数字
十六进制:以0x或0X开头,包括0-9的数字,及字母a-f或A-F

例:

byte b1=3;
byte b2=4;
byte b3=b1+b2;		(编译错误)

byte与byte(或short,char)进行运算的时候会提升为int,两个int类型相加的结果也是int类型
b1和b2是两个变量,变量存储的值是变化,在编译的时候无法判断里面具体的值,相加有可能会超出byte的取值范围

byte b4=4+3;			(编译正常)

java编译器有常量优化机制

进行混合运算的时候,byte,short,char不会相互转换,都会自动将类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
byte,short,char—int—long—float—double

int x=4;
int y=(x++)+(++x)+(x*10);		//x=6;y=70;

byte b=10;
b++;							//b++等价于b=(byte)(b+1);	正确
b=b+1;							//错误

short s=1;
s=s+1;			//报错,不兼容的类型: 从int转换到short可能会有损失
s+=1;			//正确,等价于s=(short)(s+1);

运算符

^逻辑异或:相同为false,不同为true。

位运算符

  • &:有0则0
  • |:有1则1
  • ^:相同则0,不同则1
  • ~:按位取反

位异或运算符的特点:
^的特点:一个数据对另一个数据位异或两次,该数本身不变。

System.out.println(5^10^10);			//5
System.out.println(5^10^5);				//10

实现两个整数变量的交换:
1.定义一个第三方变量 (开发推荐)
2. int x=10; (但是有弊端,两数相加可能会)
int y=5;
x=x+y;
y=x-y;
x=x-y;
3.不需要第三方变量,通过^来做 (面试推荐)

x=x^y;			//10^5
y=x^y;			//10^5^5		y=10
x=x^y;			//10^5^10		x=5

<<:
左移,左边最高位丢弃,右边补齐0
左移,向左移动几位就是乘以2的几次幂
>>:
右移,最高位是0,左边补齐0;最高位是1,左边补齐1
右移,向右移动几位就是除以2的几次幂
>>>:
无符号右移,无论最高位是0还是1,左边补齐0