Java基础语法及数据类型转换

2020-12-01


java的基础语法:

注释:含义,注释就是对代码的解释说明

特点:当源文件被编译时会被自动忽略注释,编译成字节码文件后这个注释就不存在了。只有我们自己能够查看注释的内容

分类:

1、单行注释://表示一行注释,只能注释一行,不能换行,可以嵌套

2、多行注释:/**/表示多行注释,可以注释多行,能换行,不能嵌套,可以进行行内注释

3、文档注释:

作用:

1、对代码进行说明

2、调试:可以使用注释和输出的方式对错误的代码进行排错

关键字(保留字):eclipse中:紫红色

定义:关键字就是指的是程序中特殊的字符,这是特殊的字符代表了程序中特有的功能,就是指程序中自己用到的一个又一个的英文单词

注意事项:1、不能自己去定义关键字;2、里面包含两个比较特殊的关键字(Java不用,但是无法定义)const,goto

标识符:就是用于自己定义(类名,方法名,变量名,常量名,枚举,包名)的名称

标识符的组成:1、大小写的英文字母a-zA-Z;2、数字0-9;3、特殊字符:_ $

标识符命名的规定(必须遵循):1、标识符中不能使用关键字(eg:class不能自定义,myclass可以);2、不能以数字开头;

标识符命名的规范(可以不遵循):

包名:包名需要遵循倒序的规范;例如:com.ls.test

类名:类名一般需要首字母大写;例如:Person Bean

方法名:首字母小写其余单词首字母大写;例如:getMax,helloWorld;动词或者动宾结构

变量名:首字母小写其余单词首字母大写;例如:name,myName;名词或者形容词

常量名:所以单词全部都大写 每个单词之间需要使用下划线隔开;例如:PI,MONTH_YEAR_DAY

常量

定义:在程序中不变的量就是常量。

分类:

以形式的分类:    1、字面量常量,我们直接能看到常量的值

                             2、字符常量,以final关键字去修饰的常量叫做字符常量。可以确定常量的用途,无法确定里面的值是多少

以数据类型分类:1、基本数据类型的常量:整数常量(123,-123);浮点数常量(12.34,10.0,-2.0);字符常量(主要是char类型:'数字or中文' eg:'中','1',' '),在使用时需要注意,必须要有内容;布尔类型的常量:表示代码中的是非(true,false)

                             2、引用数据类型的常量:字符串常量 例如:"","%^&$*"(""里面什么都行);空值常量:NULL 在内存中没有指向任何内容的对象;注意事项:NULL可以传递到任意的重载的方法中,就无法判断使用的是什么方法

代码示例:

package com.ls.cn;

public class Demo1_常量 {

	public static void main(String[] args) {
		//整数常量:
		System.out.println(123);
		System.out.println(-10);
		System.out.println(0b100);//二进制的表示方式
		System.out.println(0100);//八进制
		System.out.println(0x100);//十六进制
		//浮点数常量:
		System.out.println(1.0);
		//字符常量
		System.out.println('牛');
		System.out.println('1');
		System.out.println(' ');
		System.out.println('a');
		//布尔常量
		System.out.println(true);
		//引用数据类型的常量
		//System.out.println(null);
		System.out.println("");
		System.out.println("%$^*&*&^");

	}

}

变量

定义:在程序中可变的量叫做变量 

本质:变量就是内存中的存储空间,空间中的内容是不确定的

变量的声明:数据类型 变量名 = 变量值; 

详细说明:

数据类型:在内存中开辟空间,指定空间的大小。

变量名:给内存中的空间命名。

=:赋值符号,将等号右边的值赋给左边

变量值:就是给变量赋值的具体值,可以常量,可以是声明过的变量

注意事项:1、变量在声明时必须要加上数据类型;2、在使用时不需要加上数据类型;

数据类型

分类:

基本数据类型:直接在内存中存储它自身的值,修改也在自身的空间中,存储比较简单的值

引用数据类型:存储的是一段内存地址,存储的都是相对复杂的值

基本数据类型四类八种:

整数类:byte(1字节:2^8,-128--127),short(2字节:-32768--32767),int(4字节:-21亿--21亿),long(8字节:-2^63--2^63)

浮点类:float(4字节) IEEE757 999->9^99 大于long类型;double(8字节)

字符类:char 2字节  0-65535,没有负,char来定义一个字符,然后通过单引号括起来的单个字符赋值给它

布尔类:   boolean 未知  1字节 true,flase

代码示例:

public class Demo04_数据类型 {

	public static void main(String[] args) {
		int a = 10;
		System.out.println(a);
		//int b = 1000000000000;
		//long类型需要加上L
		long l = 11111000000000L;//默认是int类型,加上L
		//float类型加上f
		float f = 3.14f;//默认double类型
		double d = 10.0;
		byte b = 1;
		byte b1 = 100;
		short s = 10000;
		//char 类型
		char c = 'a';
		char c1 = ' ';
		//布尔类型
		boolean b2 = true;
		
	}
}

数据类型的转换之隐式转换

含义:小的类型向大的类型进行转换,一定不会出现数据的丢失,可以进行一个自动的类型转换

数据之间的表示范围之间的关系:小->大

byte<char=short<int<long<float<double,Boolean不需要参与比较

注意事项:1、int类型跟int类型以上的数据进行相互运算时,最终结果转换成大的类型

2、int类型跟int类型以下的类型进行相互运算时,直接转换为int类型,不会转换为大的类型

数据类型转换之强制类型转换

定义:大的类型向小范围的类型转换需要特殊的策略进行类型转换,不能直接转换,我们称之为强转

本质:强转有可能出现问题,会造成数据的丢失,由程序员负责,强转就相当于我们在责任书上签字

强转的格式:数据类型a 变量名1 = (转换的数据类型a)变量名2;

注意事项:1、强制类型转换有可能造成数据的丢失;2、小的范围的类型也可以强转成大的范围

package com.ls.cn;

public class Demo06_强制类型转换 {

	public static void main(String[] args) {
		int i = 10;
		long l = i;
		byte b = (byte)i;
		int i1 = 129;//-128-127
		byte b1 = (byte)i1;//循环
		System.out.println(b1);
		int i2 = 100;
		short s1 = (short)i2;
		
		float f1 = 1.73f;
		//相当于取整
		int i3 = (int)f1;
		System.out.println(i3);
		double d1 = 12.3;
		int i4 = (int)d1;
		System.out.println(i4);
	}
}

字符类型

定义:字符类型就表示单个的字符,需要用char关键字声明,值需要用单引号引起来

字符类型在底层的存储:1、所有的数据在计算机的底层都是需要转换成数字来进行存储;2、字符类型在存储时可以实现字符与数字之间的转换;3、从字符到数字的过程叫做【编码】;4、从数字到字符的过程【解码】

编码表:每一个字符在计算机的编码集中都代表一个数字。编码表别名字符集

 

世界上最早的编码表ASCII:数字(48-57)大写字母(65-90)小写字母(97-122)

规律:1、数字与字母之间不连续的;2、大小写不连续;3、数字(48-57)的编码小于大写字母(65-90)的编码,大写字母的编码小于小写字母(97-122)的编码

后来各国都开始研究自己的编码表,我国编码表GBK,适用于中文和英文

国际组织开始统一编码规范,出现了万国码unicode编码表,适用于各国最常用的字符。每一个字符代表的大小是两个字节。

后来为了资源的合理利用又出现了utf-8编码,这种编码表每个字符所占的字节是一个范围,中文字符所占字节3个,英文字符所占字节1个

在Java中使用的是unicode编码,并且Java中字符的编码都\uXXXX,后面XXXX跟的是十六进制的数字

编码集之间的关系:互相之间互不兼容:相同字符在不同的编码表中,对应的数字是不同的;相同数字在不同的编码表中对应的字符是不相同的;所有的编码表都跟ASCII表兼容,在ASCII表中的数字和字符在其他编码表中也遵循里面的规定

字符串类型

字符串类型是一个引用数据类型,定义一个字符串就是用双引号引起来

双引号中的内容可以是任意数量的字符。以string类型来定义

+在字符串类型的计算中表示连接符

运算符

只有常量或者变量不能完成需求,还需要运算符和运算规则来完成

分类:

1、算数运算符;2、比较运算符;3、赋值运算符;4、逻辑运算符;5、位移运算符;6、三元运算符

算数运算符:进行算数运算 可以是一个元素也可以是多个元素。

双目运算符:两个元素进行计算:+-*/%

/ 只保留整数的部分会将余数忽略,如果需要保留小数部分将其中一个元素转换成浮点数

%不用管商是多少,直接取余

一目运算符:++自增,--自减

自增:在自身的基础上加1;自减:在自身的基础上减1

++在前是前自增,在后是后自增

区别:在前自增时先自增在计算结果,在后自增时先输出运算结果在自增

比较运算符:比较数据之间的大小关系,比较的结果都是布尔类型

比较大小关系:<,>,<=,>= 整数 浮点数 字符(会先转成int类型再去比较)

比较是否相等:!=,== 可以比较任意的类型

赋值运算符:将等号右边的值赋值给左边

赋值符号:=

扩展的赋值符号:+=,-=,*=,/=,%=

int i+=2;--->i = i = 2;

逻辑运算符:代码中的逻辑关系需要用到逻辑运算符

分类:

&& 与:表示并且的关系

穷举出所有的情况:

true&&true   true 

true&&false  false

false&&true  false

false&&false false

||    或

true||true   true

true||false  true

false||true  true

false||false false

!  非:遇对则错,遇错则对

短路与或:当或运算左边为true,不去执行右边的表达式

当进行与运算时左边为false,不会再去执行右边的内容了

位移运算符:符号位+:0;-:1

就是用来快速计算 数据除于2,或者乘与2

左移运算符<<,就相当于将数据扩大两倍

右移运算符>>,就相当于将数据缩小一半,不要使用右位移来操作负数

无符号的位移>>>,将数据缩小一半

区别:有符号的右移在符号位上会加上1,无符号不会去管符号位

无符号位移的执行效率要高于有符号

三元运算符:进行比较运算

格式:条件表达式?表达式1:表达式2

执行的顺序:先去判断条件表达式,如果成立执行表达式1,如果不成立执行表达式2

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值