java基础

1 java标识符

java中包,类,方法,参数,变量的命名规则,英文字母以及数字还有美元符($)和下划线(_)。但是数字不能在第一位,也不能是关键字。

2 java关键字  

关键字:在java语句中有特殊意义的单词 



注:main不是关键字,却是被虚拟机所识别的一个名称。

java 无sizeof ,goto, const 关键字,但不能用goto const作为变量名

3 java常量

 定义:Java中固定不变的、表示不能改变的数值。

 Java中常量的分类:

整型常量:十进制 ,十六进制 ,八进制(其中十六进制要注意的是0-9后A-F代表10到15)

长整型常量:13L

单精度浮点数:5.1f,.4f ,2e3f ,0f(后面不加f则默认为double类型)

双精度浮点数 :5.1,.4,2e-3,0d

布尔常量 :true和false

字符常量 :‘a’ , ‘8’,  '\u0027'

‘\r‘ 回车键;(这里的\是转义字符的意思)

‘\n‘ 换行;

‘\t‘ 制表符,相当于table键;

‘\b‘ 退格键,相当于Back Space;

‘\‘‘ 单引号,而‘\“‘是双引号;

‘\\‘ 一个斜杠“\”。

字符串常量 :“Hello World“,”123”, "Welcome \nXXX"

null常量 :null常量只有一个值,用null表示,表示对象的引用为空


4 java变量

 定义:内存中的一个存储空间。有自己的名称(变量名)和类型(数据类型)。

数据类型:

        Java中有两种数据类型:1、基本数据类型;2、引用数据类型。

        基本数据类型有八种。

1.byte占用一个字节

2.short占用两个字节

3.int占用四个字节

4.long占用八个字节

5.float占用四个字节

6.double占用八个字节

7.char占两个字节 是unicode编码。如果直接给char赋值为一个大小范围内的数字而不加单引号,那么输出的是这个数字的unicode编码代表的字符。

<span style="font-size:14px;">package testchar;
public class Test2 {
		public static void main(String []args){
		char b = '6';
		System.out.println(b);
	}		
}</span>

比如这个程序的输出就是大写的B

8.Boolean占一个字节(或者一位),其取值只有两个,true和false。

引用数据类型有三种。分别是类class 接口interface  数组array

5 数据转换   

5.1隐式转换,由数据长度小的自动转换到大的 其中(byte short char)——》int    long float double三者从左往右依次变强,谁出现转换为谁。比如:System.out.println(‘a’+1)打印的是98,自动类型提升,把a转换成ASCII编码值(97)与1相加。

5.2强制转换,这个是需要手动的,比如用int和byte相加,但是想要byte的数据类型,虽然大小是在byte的数据长度以内,但是类型不符合会报错,所以需要先转换,如下图

<span style="font-size:14px;">package test;
public class Test2 {	
	public static void main(String []args){		
		int a = 2;
		byte b =(byte)(1+a);		
	}	
}</span>

6.运算符

1,  算术运算符:+,-,*,/,%,++,--

2,  赋值运算符:=,+=,-=,*=,/=,%=

3,  比较运算符:==,!=,<,>, <=, >=, instanceof

Instanceof检查是否是类的对象 返回为布尔类型。

4,  逻辑运算符:&,|,^,!,&&,||

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

几个注意的点: 第一,++在前面和在后面的区别,在前面是先+1,赋值给本身,在后面就是先赋值,后+1

第二点,==和equals的区别,前者是判断内存中的地址值,比如创建了两个String字符串都存的是“hello”但是用==比较,那么返回值是false。equals在object类中也是调用了==的方法,但是针对不同类中的equals的方法都进行了重写,比如String类中,如果地址值不同,还会进行值的判断。

第三点,&和&&的区别 |和 ||的区别  前者是运算符,后者是短路符号。例如 a&&b   如果a的结果是false,那么直接返回false,b不参与运算。

第四点,>> 和>>>的区别,有符号右移的补位是根据原有位的最高位补的,后者直接补0

例如下图:

十六进制与二进的对比

       0x80000000 =1000,0000, 0000, 0000, 0000, 0000, 0000, 0000

       0xc0000000 =1100,0000, 0000, 0000, 0000, 0000, 0000, 0000

       0x40000000 =0100,0000, 0000, 0000, 0000, 0000, 0000, 0000

总结与注意事项:

1.  移位运算符适用类型有整型和字符型。

2.  对低于int型的操作数将先自动转换为int型再移位。     

3. 左移或者右移的位数需要取模运算,比如int类型要右移33位,那么实际上是右移了一位,如果右移32位,那么大小实际上上没变。

4.  x>>1的结果和x/2的结果是一样的,x<<2和x*4的结果也是一样的。总之,一个数左移n位,就是等于这个数乘以2的n次方,一个数右移n位,

       就是等于这个数除以2的n次方。

5.  %取模运算,得到的模是前一个数字的符号,不管后面的数字的符号。

6  三元运算符

7.运算符的优先级(有的公司的笔试题里会出)



关于退格/b   在eclipse中的打印是空格   在dos界面运行是删除  不清楚什么状况。


8.程序的流程的流程控制

判断结构   选择结构   循环结构   

判断结构:

判断语句三种格式:

格式一:

if(条件表达式){

执行语句;

}

执行流程:如果条件表达式为true,就执行语句,否则,什么都不执行。

格式二:

if(条件表达式){

if语句执行体;

}else{

else语句执行体;

}

执行流程:如果条件表达式为true,就if语句执行体;否则,就执行else语句执行体;

格式三:

if(条件表达式){

if语句执行体;

}

else if(条件表达式){

else if语句执行体;

}

...

else{

else语句执行体;

}

注意点:当有两个判断条件且有结果是可以优先考虑使用三元运算符     比如   
expression1?expression2:expression3 
其中,expression1是一个布尔表达式。如果expression1为真,那么expression2被求值;否则,expression3被求值。需要注意,2和3的数据类型需要一致。
选择结构

switch语句

用于做选择使用的。一般用于几个常量的判断。

switch语句会把几个常量值直接加载到内存,在判断的时候,效率要比if语句高。

所以,针对几个常量的判断,一般选择switch语句。

选择语句格式:

switch(变量){

case 取值1:

执行语句;

break;

case 取值 2:

执行语句;

break;

...

default:

执行语句;

break;

}

注意点:switch后面的变量数据类型,在比较早期的jdk版本中只接受四种基本类型的,后来在1.5之后接受枚举类型,1.7接受String



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值