java学习笔记

java基础

关键字总结

关键字:被java语言赋予特定含义的单词,比如public;组成关键字单词的字母全部是小写的。
注:goto和const是保留字,目前并不使用。
关键字一览表如下图所示:在这里插入图片描述
在这里插入图片描述

标识符总结

标识符:实质就是给类、接口、方法、变量起名字
标识符的组成包括1)英文字母大小写;2)数字字符;3)$和_
标识符注意事项:1)不能以数字开头;2)不能是java关键字;3)严格区分大小写,y1和Y1是两个不同的标识符。
常见的命名规则:
包:可以理解为文件夹,其作用就是为了把相同的类名进行区分,包名要全部小写
类名或者接口名:一个单词的时候,单词的首字母必须大写,比如:Student,Dog;
多个单词的时候,每个单词的首字母必须大写,比如:HelloWorld。
方法或者变量:一个单词时,单词的首字母小写,比如:age;
多个单词时,从第二个单词开始,每个单词的首字母大写,比如:StudentName,showName()。
常量:一个单词时,全部大写,比如PI;多个单词时,咩个字母都大写,用_隔开,比如MIN_AGE

常量

常量:在程序的执行过程中,其值不会发生改变的量。分为字面值常量和自定义常量

字面值常量

  1. 字符串常量:用双引号括起来的内容。比如“hello java"
  2. 整数常量:所有的整数。比如:100,200
  3. 小数常量:所有的小数。比如:1.2,10.11
  4. 字符常量:用单引号括起来的内容。比如’a’,‘b’,(‘ab’是错误的)
  5. 布尔常量:true,false(注意,是小写)
  6. 空常量:null

不同进制数据表现

二进制:由0,1组成,以0b开头;
八进制:由0,1,…,7组成,以0开头;
十六进制:由0,1,…,9,a,b,c,d,e,f(大写也可)组成,以0x开头。

数据类型

java是一种强类型的语言,针对每一种数据都定义了明确的数据类型。

数据类型分类

A.基本数据类型;
B.引用数据类型(类,接口,数值)

基本数据类型(4类8种)

A.整数

数据类型占用字节数目
byte1
short2
int4
long8

B.浮点数

数据类型占用字节数
float4
double8

C.字符

数据类型占用字节数
char2

D.布尔

数据类型占用字节数
boolean1

整数默认是int类型,浮点数默认是double类型;长整型后缀用L或l标记。单精度浮点数用F或f标记

变量注意事项

  1. 作用域
    变量定义在哪个大括号内,它就在这个大括号内有 效,并且,在同一个大括号内不能同时定义同名的变量。

  2. 初始化值
    没有初始化值的变量不能直接使用;只要在使用前给值就行,不一定非要在定义的时候立即给值;推荐在定义的时候给值。
    定义变量的格式:
    a.数据类型 变量名 = 初始化值;
    b.数据类型 变量名;
    变量名 = 初始化值

类型转换

默认转换(从小到大的转换)

A.byte,short,char-int-long-float-double
B.byte,short,char相互之间不能转换,他们参与运算首先转换为int类型

强制转换(从大的数据类型到小的数据类型)

格式:目标数据类型 变量 = (目标数据类型)(被转换的数据);
注:强制转换会导致精度损失,在使用的时候三思

典型面试题

byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;

上面的代码中哪一句会编译失败,请说明理由
答案:
b=b1+b2;是有问题的。因为变量相加,会首先看类型问题,最终把结果赋值得也会考虑类型问题;常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。

byte b = 130;

上述代码的问题在哪里,如果想要代码正确运行,应该怎样修改,最后输出的正确结果是多少?
答案:
A.获取130这个数据的二进制。
00000000 00000000 00000000 10000010
这是130的原码,也是反码,也是补码
B.做截取操作,截成byte类型
10000010
这个结果是补码
C.已知补码求原码

符号位数值位
补码10000010
反码10000001
原码11111110

所以最终的结果为-126

class Demo{
	public static void main(String[] args{
		byte b = (byte) 130;
		System.out.println(b);
}
}
-126

字符串与其他数据的’+‘运算

字符串数据不是字符数据)与其他数据做+,结果是字符串类型,这里的+不是加法运算,而是字符串连接符。

class Demo {
	public static void main(String[] args) {
        	System.out.println("hello"+'a'+1); 
        	System.out.println('a'+1+"hello"); 
  
  		System.out.println("5+5="+5+5); 
  		System.out.println(5+5+"=5+5"); 
 }
}
helloa1
98hello
5+5=55
10=5+5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值