Java基础--知识积累

1.注释

单行注释 //

多行注释 /*    */

文档注释 /**      */

初学者先写注释再写代码,先有思想后写代码实现


2.关键字

关键字全小写

goto和const为保留字存在,目前并不存在


3.标识符

英文大小写字母

数字字符

$和_

!!不能以数字开头,不能史Java中的关键字,区分大小写

包(文件夹名):要求全小写,一般是公司的域名倒着写

类或接口:如果是一个单词要求首字母大写,多个单词时要求首字母都大写

方法和变量:如果是一个单词,每个字母都小写,如果时多个单词,第二个单词开始首字母大写

常量:一个单词字母都大写,多个单词时用下划线连接每个单词,字母都大写


4.常量、进制和进制转换

字符串常量 "a",整数常量,小数常量,字符常量's'里面只能放单个字母,布尔常量true,false,空常量null


二进制--0b,八进制--0开头,十进制,十六进制--0x开头(10=A,……15=F),(b,x大小写都可以)

1byte=8bit 1k=1024b 1m=1024k1g=1024m1t=1024g

进制越大表现形式越短

进制转换

系数:每一位上的数据;

基数:X进制,基数就是X;

权:在右边,从0开始编号,对应位上的编号即为该为的权

结果:把系数*基数的权次幂相加。

例子:1*10^2+5*10^1+6*10^0 


十进制转任意进制

除积倒取余数(用数学方法来,除数就是进制数,余数从下往上写);


8421码及特点(快速转换法)

(二进制)110011---=---(十进制)4+8+64+128=204

128 64 32 8 4 2 1

(二进制)111000---=---74进制)三个当一位数  111--7 , 100--4

进制)11  1100---=---(十六进制)=3C

快速转换法--(十进制)60 跟8421对比,减去对应的数,能减上1,不能减上0


原码反码补码

原码:二进制表示定点表示,最高位为符号位,“0”表示正,“1”表示负,如7-----0 000111,-7------1 000111

反码:整数反码不变,负数反码对原码取反(如110---001)

补码:整数补码与原码相同,负数补码是其反码的末位加1

运算时通过补码来计算

变量

在程序执行过程中,在某个范围内其值可以发生改变的量

数据类型 变量名=变量值;

用来不断存放同一类型的常量,并可以重复使用


5.数据类型和类型转换

整型byte,short,int,long,浮点型float,double,字符型char,布尔类型boolean

面试问答:boolean理论上时占八分之一字节,因为一个开关就可以决定true和false了,但是Java中boolean类型没有明确指定他的大小

!注意事项

1.同一个区域不能使用相同的变量名;

2.局部变量在使用前必须赋值

3.一条语句可以定义几个变量

隐式转换

小的数据类型会提升为大的数据类型再运算(eg:byte b=3; int a=4; x=a+b; x=7);

数据类型转换(强制类型转换)

小的数据类型与大的数据类型相运算,求小的数据类型结果

方法:加一个强制转换符;eg:byte b=3; int a=4; b = (byte)(a+b);求得b为byte类型

!当结果超出数据类型范围,结果会损失进度。


面试题之变量相加和常量相加的区别

byte b1,b2,b3; b1=3;b2=4;b3=b1+b2;从两个方面回答:

1.byte与byte或short或char进行运算时会提升为int,两个int相加结果也为int

2.b1和b2是两个变量,变量里面存储的值都变化的,所有在程序运行中JVM时无法判断里面具体的值,相加有可能超出byte的取值范围

byte b4=3+4;3,4都是常量,Java有常量优化机制,就是在编译的时候直接把3和4的结果赋值给b4 ;


6.字符和字符串参与运算

ASCII码表的三个重要值

’0‘=48;’A‘=65;’a‘=97.

System.out.print("hello"+'a'+1);-----helloa1'

System.out.print(1+’a‘+"hello");-----98hello;

任何数据类型用+与字符串相连接都会产生新的字符串

char占两个字符,汉字也占两个字符,所以char可以存储汉字;

6.运算符

分类:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目(元)运算符

算术运算符:

+   -    *   /   %    ++   --

%求余运算符规律:

1.当左边绝对值小于右边,结果是左边的;

2.当左边的绝对值等于右边的倍数时,结果是0;

3.当左边的绝对值大于右边的绝对值时,结果是余数

4.结果符号 只和左边符号有关;

5.任何一个正整数%2的结果不是0就是1,可以用来当作切换条件

++与--

单独使用时放前放后都一样,参与运算时,放在前面先自增或自减,再运算;放后面先运算再自增或自减

赋值运算符:

=:赋值,右边赋值给左边;+=:先左右相加,结果赋值给左边;

赋值运算面试题:

short s = 1;s = s+1;输出s---错

short s=1; s+=1   ;输出s  ---对,

short运算转换为int,结果为int;

s += 1;结果为2,原因  运算时自加了一个强制转换符;

关系运算符:

==,!= , >,>=,<,<=

输出结果只有两个,true 和  false;


逻辑运算符

&与,| 或,^异或,!非,&&,

^异或-----两边相同为false ,两边不同为true

&和&&,结果相同,&&具有短路效果,一旦有一点错,结果肯定为错了。(左边为false则右边不执行)。

|和||        类似&和&&

位运算符

位&,位|,位^,位~;

&有0则0;|有1则1;^相同则0不同则1;~按位取反;--------0,1代表true和false

????? 位~:eg:~6,先取6的反码,-1得到补码,得到的反码是结果的反码,再求原码---说明不清

位异或运算符的特点及面试题

^的特点:一个数据对另一个数据位异或两次,该数本身不变:可用在数据交换上,

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

 10^5; 10^5^5  10^5^10

位移运算符<<,>>左移和右移,>>>无符号右移,

左移:左边最高位丢弃,右边补齐0;规律:向左移动几位即乘以2的几次幂

右移:最高位时0,左边补齐0,最高位是1,左边补齐1,规律:向右移动几位即是除以2的几次幂

>>>:无论最高位是0还是1,左边补齐0

三元运算符

格式    (关系表达式)?表达式1:表达式2

eg z=(x>y)?x:y-------x>y时,取x,不大时取y;

用于比较两个数是否相同,三个数的最大值等;


语句

swith建议判断固定值时使用;

if 建议判断区间或范围时使用;

你可能感兴趣的:(Java基础)