JAVA_1_DAY


前言

提示:JAVA基础
例如:第一次记录学习进度,保证自己每个代码敲一遍,不定时记录。


1.命令提示符(cmd)

启动: Win+R
切换盘符 盘符名称:
进入文件夹 cd 文件夹名称
进入多级文件夹 cd 文件夹1/文件夹2/文件夹3
返回上一级 cd …
直接回根路径 cd
查看当前内容 dir
清屏 cls
退出 exit

2. 关键字、数据类型、常量与变量

2.1 关键字

关键字的特点:
1.完全小写的字母。
2.在增强版记事本有特殊颜色。
标识符命名规则:
1.可以包含英文字母26个、0-9、$和_下划线
2.不能以数字开头
3.不能是关键字

2.2 基本数据类型

整数型 byte(1) short(2) int(4) long(8) (字节)
浮点型 float(4) double(8)
字符型 char(2)
布尔型 boolean(1)
引用数据类型

注意事项:
1.字符串不是基本类型,而是引用类型。
2.浮点型可能只是一个近似值,并非精确的值。
3.数字范围与字节数不一定相关,例如float数据范围比long更加广泛,凡是float是4字节,long是8字节。
4.浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。
5.如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
\System.out.println(100L);

3. 常量、变量

3.1 常量

常量:在程序运行期间,固定不变的量。
常量的分类:
1.字符串常量:凡是双引号引起来的部分,叫做字符串常量。例如:“abc”、“Hello”、“123”
2.整数常量:直接写上的数字,没有小数点。例如:100、2、0、-230
3.浮点数常量:直接写上的数字,有小数点。例如:2.5、0.0
4.字符常量:凡是用单引号引起来的单个字符。‘A’、‘b’、‘9’、‘中’
5.布尔常量:只有量中取值:true、false
6.空常量:null。代表没有任何数据

class  
{
	public static void main(String[] args) 
	{
		//字符串常量
		System.out.println("ABC");
		//整数常量
		System.out.println(250);
		//浮点数常量
		System.out.println(2.5);
		//字符常量,两个单引号之间必须有且仅有一个字符,
		System.out.println('a');
	}
}

3.2 变量

变量:程序运行期间,内容可以改变的量。
创建一个变量并且可以使用的格式:
数据类型 变量名称;//创建了一个变量
变量名称 = 数据值;//赋值

一步到位的格式;
数据格式 变量名称 = 数据值;
//在创建一个变量的同时,立刻放入指定的数据值

3.2.1 变量赋值

public class text{
	public static void main(String[] args){
		//创建一个变量
		//格式:数据类型 变量名称;
		int num1;
		//向变量当中存入一个数据
		//格式:变量名称=数据值;
		num1 = 10;
		//当打印输出变量名称的时候,显示出来的是变量的内容
		System.out.println(num1);//10
		//改变变量当中本来的数字,变成新的数字
		num1=20;
		System.out.println(num1);//20
		
		//使用一步到位的格式来定义变量
		//格式:数据类型 变量名称=数据值;
		int num2=25;
		System.ou.println(num2);//25

		num2=35;
		System.out.println(num2);//35	
		System.out.println("===================")
		
		byte num3=30;//注意,右侧数值范围不能超过左侧数值类型的取值范围,byte(-128,127)
		System.out.println(num3);

		short num5=50;
		System.out.println(num5);

		long num6=30000000;//错误!!
		long num6=30000000L;//必须加L

		float num7= 2.5F;//浮点型需要加F
		System.out.println(num7);//2.5
		
		double num8=1.2;
		System.out.println(num8);//1.2

		char zifu1='A';
		System.out.priintln(zifu1);//A

		zifu1='中';//char类型允许输入中文字,直需要确保是一个。
		System.out.println(zifu1);//中

		boolean var1=true;
		System.out.println(var1);//true

		var1=false;
		System.out.println(var1);//false
		//将一个变量的数据内容,赋值给另一个变量
		//右侧的变量名称var1已存在,里面装的是false布尔值
		//将右侧变量里面的false值,向左交给var2变量进行存储
		boolean var2=var1;
		System.out.println(var2);//false
	}

使用变量的注意事项:
1.创建多个变量,那么变量之间的名称不可以重复。
2.对于float和long类型来说,字母后缀F和L不能丢掉。
3.如果使用byte或者short类型变量,那么右侧数值不能超过左侧数值范围。
4.没有进行赋值发变量,不能直接使用;一定要赋值之后才能使用。
5.变量使用不能超过作用域范围。
【作用域】;定义变量的一行开始,直到直接所属的大括号结束为止。

public class text{
	int num1 = 10;
	System.out.println(num1);//10
	{
		int num6=10;
			System.out.println(num6);//10
	}
		//System.out.println(num);//已经超出大括号范围,超出作用域,变量就不能使用了。
	
	//同时创建了三个int类型变量。
	int a,b,c;
	//各自分别赋值
	a=10;
	b=20;
	c=30;
	System.out.println(a);
	System.out.println(b);
	System.out.println(c);
		
	//同时创建三个int变量,同时赋值
	int x=100,y=200,z=300;
	System.out.println(x);
	System.out.println(y);
	System.out.println(z);
}

3.2.2 数据类型转换

当数据类型不一样时,将会发生数据类型转换。
自动类型转换(隐式)
1.特点:代码不许需要进行特殊处理,自动完成。
2.规则:数据范围从小到大。
强制类型转换(显式)

3.2.2.1 自动类型转换
public class test{
	public static void main(String[] args){
	System.out.println(1024);//这是一个整数,默认就是int类型
	System.out.println(3.14);//这是一个浮点数,默认就是double类型

	//左边是long类型,右边是默认的int类型,左右不一样
	//一个等号代表赋值,将右边的int常量,交给左边的long变量进行存储
	//int-->long,符合数据范围从小到大的要求
	//这一行代码发生了自动类型转换
	long num1 = 100;
	System.out.println(num1);//100
	
	//左边是double类型,右边是float类型,左右不一样
	//float-->double,符合从小到大的规则
	//也发生了自动类型转换
	double num2 = 2.5F;
	System.out.println(num2);//2.5

	//左边是float类型,右边是long类型,左右不一样
	//long-->float,范围是float更大一些,符合从小到大的规则
	//也发生了自动类型转换
	float num3 = 30L;
	System.out.println(num3);//30.0
	}
}
3.2.2.2 强制类型转换

强制类型转换特点:
1.特点;代码需要进行特殊的格式处理,不能自动完成。
2.格式;范围小的类型,范围小的变量名 = (范围小的类型)原本范围大的数据;

注意事项:
1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
2.byte/short/char这三种类型都可以发生数学运算,例如加法“+”
3.byte/short/char这三种类型在运算时候,都会被首先提升成为int类型,然后再计算。
4.boolean类型不能发生数据类型转换。

public class test{
	public static void main(String[] args){
	//左边是int类型,右边是float类型,不一样
	//long-->int,不是先从小到大
	//不能发生自动类型转换
	int num = (int) 100L;
	System.out.println(num);//100
	
	//long强制转换为int类型
	int num2 = (int)600000000;//超过int数据范围,int最大是21亿
	System.out.println(num2);//1705032704,数据溢出

	//double-->int,强制类型转换
	int num3 = (int) 3.5;
	System.out.println(num3);//3,精度损失,并不是四舍五入,所有小数位都会损失

	char zifu1 = 'A';//这是字符型变量A,
	System.out.println(zifu1 + 1);//66,计算机的底层会用一个数字(二进制)来代表字符A,就是65
	//一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成一个数字。

	byte num4 = 40;//注意:右侧的数值大小不能超过左侧的类型范围
	byte num5 = 50;
	//byte + byte-->int + int --> int
	int result1 = num4 + num5;
	System.out.println(result1);//90

	short num6 = 60;
	//byte + int-->int + int--> int
	//int result2 = num4 + num6;
	//int 强制转换为short;注意必须保证逻辑上真实大小本来就没有超过short范围,否则会发生数据溢出
	short result2 = (short)(num4 + num6)
	System.out.println(result2);
	}
}

4. ASCII编码表

数字和字符的对照关系表(编码表):
ASCII码表:American Standard Code for Interchange ,美国信息交换标准代码
Unicode码表:万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含更多字符。
记住三个几个特例:
48-‘0’
65-‘A’
97-‘a’

public class test  {
	public static void main(String[] args) 
	{
		char zifu1 = '1';
		System.out.println("zifu1 + 0");//49

		char zifu2 = 'A';//其实底层保存的是65数字

		char zifu3 = 'c';
		//左侧是int类型,右边是char类型
		//char-->int ,确实是从小到大
		//发生了自动类型转换
		int num = zifu3;
		System.out.println(num);//99

		char zifu4 = '中';//是正确写法
		System.out.println(zifu4 + 0);//20013
		}
}

5.拓展补充内容

补充内容:
对于byte/short/char三种类型来说,如果右侧数值没有超过范围,
那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。

1.如果没有超过左侧范围,编译器补上强转。
2.如果右侧超过左侧范围,那么直接编译器报错。

public class test{
	public static void main(String[] args){
		//右侧确实是int数字,但是没有超过左侧的范围,就是正确的。
		//int-->byte,不是自动类型转换。
		byte num1 = /*(byte)*/30;//右侧没有超过左侧的范围
		System.out.println(num1);//30

		//byte num1 = 128;//右侧超过了左侧范围
		
		//int -->char,没有超过范围。
		//编译器将会自动补上一个隐含的(char)
		char zifu = /*(char)*/65;
		System.out.println(zifi);//A
	}
}

在给编译器进行赋值时候,如果右侧的表达式当中全都是常量,没有任何变量,
那么编译器javac将会直接将若干个表达式计算得到结果。
short result = 5 + 8;//等号右边全都是常量,没有任何变量参与运算
编译之后,得到的.class字节码文件当中相当于【直接就是】:
short result = 13;
右侧的常量结果数值,没有超过左侧范围,所以正确。

这称之为"编译器的常量优化"
但是注意:一旦表达式当中有变量参与,那么就不能进行这种优化了。

public class test{
	public static void main(String[] args ){
		short num1 = 10;//正确写法,右侧没有超过左侧范围

		short a = 5;
		short b = 8;
		//short + short -->int + int -->int
		//short result = a + b;//错误写法!左侧需要是int类型
		
		//右侧不用变量,而是采用常量,而且只有两个变量,没有别人。
		short result = 5 + 8;
		System.out.println(result);
		
		//short result2 = 5 + a + 8;//错误写法,不进行优化。
	} 
}

该处使用的url网络请求的数据。


总结

第一天学习内容,坚持

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值