JAVA自我学习路一

1.搭建JAVA环境

1.1JDK下载

jdk-8u271-Window-x64

链接:https://pan.baidu.com/s/13qH9M1gKlr_mI5eymq-0RQ 
提取码:yg90

1.2环境配置

(1)在搜索栏搜索高级系统设置,然后点击环境变量

JAVA自我学习路一_第1张图片

(2)然后在下方新建一个变量名称:JAVA_HOME,变量值选择你jdk安装到的目录

例如我自己:JAVA自我学习路一_第2张图片JAVA自我学习路一_第3张图片

 

 (3)然后找到变量Path,点击编辑

 接着新建%JAVA_HOME%\bin,然后将它上移到最上方

JAVA自我学习路一_第4张图片

最后就是确定、确定。然后进行一下试验,看看到底有没有配好,win  + R,输入cmd,打开命令行。分别输入javac、javaJAVA自我学习路一_第5张图片,出现这样的画面就是配置完成了。

2.第一个程序HelloWorld

我刚开始使用的是NotePad++,因为我觉得它画面简单明了,挺好用的。

public class HelloWorld {
	public static void main(String[] args){
		System.out.println("Hello,World");
	}
}

 第一行的第三个单词必须和所在的文件名称完全一样
public class后面代表定义一个类的名称,类是JAVA当中所有源代码的基本组织单位

第二行的内容是固定的写法,代表main方法,这一行代表程序执行的起点。

第三句代表打印输出语句

3.关键字与标识符

关键字的特点
    1.完全小写的字母  例如:public 
    2.在程序中也会带有颜色,例如上面的HelloWorld
    
标识符
在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等。
命名规则:
        1.英文大小写、0到9数字、$、和_
        2.不能以数字开头
        3.不能是关键字
        
命名规范:
        1.类名规范:首字母大写,后面每个单词字母大写(大驼峰式)。例如HelloWorld
        2.变量名规范:首字母小写,后面每个单词字母大写(小驼峰式)。例如helloWorld
        3.方法名规范:同变量名

4.常量

常量的含义:在程序运行期间,固定不变的量 

 常量的分类:
 1.字符串常量:凡是双引号引起来的部分,叫做字符串常量。例如:“Hello”、“123”
 2.整数常量:直接写上的数字,没有小数点。例如:100、300、-200
 3.浮点数常量:直接写上的数字,有小数点。例如:2.5、-3.14、0.0
 4.字符常量:凡是用单引号引起来的单个字符,叫做字符常量。例如:'A'、'9'、'中'
 5.布尔常量:只有两种,true与false 
 6.空常量: null。代表没有任何数据

  public class Demo01Const {
	  public static void main(String[] args) {
		  //字符串常量
		  System.out.println("ABC");
		  
		  //整数常量
		  System.out.println(50);
		  
		  //浮点数常量
		  System.out.println(5.2);
		  
		  //字符常量
		  System.out.println('A');
		  
		  //布尔常量
		  System.out.println(true);
		  
		  //不能将null放入
	  }
	  
  }

 5.基本数据类型

JAVA自我学习路一_第6张图片

取值范围记得大概就行了,一般只需要记住byte的范围,即-128~127


引用数据类型:
    字符串、数组、类、接口、Lambda
    
注意事项:
1.取值范围与字节数不一定相关。例如float数据范围比long更广泛,但是float是4字节,而long是8字节
2.字符串不是基本数据类型,而是引用数据类型
3.浮点型可能只是一个近似值,并非精确值
4.浮点数当中默认类型是double,如果一定要使用float类型,需要加上一个后缀F
  如果是整数,默认是int类型,如果一定要使用long类型,需要加上一个后缀L。大小写都可以,推荐使用大写

6.变量

变量:程序运行期间,内容可以发生改变的量。
创建一个变量并且使用的格式:
数据类型 变量名称;// 创建一个变量
变量名称 = 数据值;// 赋值,将右边的数据值,赋值给左边的变量
一步到位的格式:
数据类型 变量名称 = 数据值;//在创建一个变量的同时,立刻放入指定的数据值

接下来是一些代码的实现过程,一些例子助于理解。

public class Demo02Variable {
	public static void main(String[] args) {
		//创建一个变量
		//格式:数据类型 变量名称;
		int num1;
		//向变量当中存入一个数据
		//格式:变量名称 = 数据值;
		num1 = 10;
		//当打印输出变量名称的时候,显示出来的是变量的内容
		System.out.println(num1);
		
		//改变变量当中本来的数据,变为新的数字
		num1 = 20;
		System.out.println(num1);
		
		//使用一步到位的格式来定义变量
		//格式:数据类型 变量名称 = 数据值;
		int num2 = 25;
		System.out.println(num2);
		num2 = 35;
		System.out.println(num2);
		System.out.println("================================");
		
		byte num3 = 30;//注意;右侧数值的范围不能超过左侧数据类型的取值范围
		System.out.println(num3);
		
		short num5 = 50;
		System.out.println(num5);
		
		long num6 = 3000000000L;//需要跟上一个L
		System.out.println(num6);
		
		float num7 = 2.5F;//需要跟上一个F
		System.out.println(num7);
		
		double num8 = 1.2;
		System.out.println(num8);
		
		char zifu1 = 'A';
		System.out.println(zifu1);
		
		zifu1 = '中';
		System.out.println(zifu1);
		
		boolean var1 = true;
		System.out.println(var1);
		
		//将一个变量的数据内容,赋值交给另外一个变量
		//将右侧的变量名称var1已经存在,里面装的是true布尔值
		//将右侧变量里面的true值,向左交给var2变量进行存储
		boolean var2 = var1;
		System.out.println(var2);
	}
}

使用变量时一些注意事项:

1.如果创建多个变量,那么变量之间的名称不可以重复
2.对于float和long类型来说,字母后缀F和L不要丢掉
3.如果使用byte或者short类型的变量时,那么右侧的数据值不能超过左侧的范围
4.没有进行赋值的变量。不能直接使用,必须赋值后,才能使用
5.变量使用不能超过作用域的范围。
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
6.可以通过一个语句来创建多个变量,但一般情况不推荐这样写。
例如 int a, b, c;
     a = 10;
     b = 20;
     c = 30;
     
例如 int x = 100, y = 200, z = 300;

7.类型转换

当数据类型不一样时,将会发生数据类型转换。

自动类型转换(隐式)
    1.特点:代码不需要进行特殊处理,自动完成。
    2.规则:数据范围从小到大。即取值范围

强制类型转换 (显示)
    1.特点: 代码需要进行特殊的格式处理,不能自动完成
    2.格式: 范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
    
注意事项:
    1. 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
    2. byte/short/char这三种基本数据类型可以发生数学运算,例如加法”+“
    3. byte/short/char这三种基本数据类型在运算的时候,都会被首先提升成为int类型,然后再计算。
    4.boolean类型不能发生数据类型转换

接下来是一些例子,助于理解。

public class Demo01DataType {
	public static void main(String[] args) {
		System.out.println(1024);//这是一个整数,默认是int类型
		System.out.println(3.14);//这是一个浮点数,默认就是double类型
		//左边是long类型,右边是默认的int类型,左右类型不一样
		//将 int --> long ,因为符合了数据范围从小到大的要求,所以发生了自动类型转换,所以不需要L
		long num1 = 100;
		System.out.println(num1);
		
		//左边是double类型,右边是float类型
		// float --> double,符合数据范围从小到大的要求,所以发生了自动类型转换
		double num2 = 2.5F;
		System.out.println(num2);
		
		// 左边是float类型,右边是long类型
		//long --> float,float范围更大,符合从小到大的要求,发生了自动类型转换
		float num3 = 30L;//显示30.0 因为float类型,所以有小数点
		System.out.println(num3);
		
		System.out.println("-----接下来是强制类型转换----");
		
		// 左边是int类型,右边是long类型
		// long --> int,不是从小到大,所以不能发生自动类型转换
		// 格式: 范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据。
		//因为这里L ,所以他是long类型。100本身并不属于long。()括号内写你想转换成的数据类型
		int num4 = (int) 100L;
		System.out.println(num4);
		
		//六十亿应属于long类型,但如果不添加L,那他默认为int类型。添加L后,这里就是long强制转换为int
		int num5 =(int) 6000000000L;
		System.out.println(num5);//虽然这里格式对了,但结果是1705032704。即发生了数据溢出
		
		// double --> int ,强制类型转换
		int num6 = (int)3.5;
		System.out.println(num6);//结果是3,int没有小数点,所以0.5没了,所以是发生了精度损失
		
		char zifu1 = 'A';
		System.out.println(zifu1 + 1);// 结果是66,也就是A被当作65进行处理
		// 计算机的底层会用一个数字(二进制)来代表字符A,就是65
		// 一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为数字
		
		byte num7 = 40;
		byte num8 = 50;
		// byte + byte 会转换为int + int -->int 结果就会使int。所以result1前应该是int!
		int result1 = num7 + num8;
		System.out.println(result1);
		
		short num9 = 60;
		// byte + short 会被转换为 int + int 结果为int
		//但如果依然想使result2为short,那么可以强制转换
		//但必须保证逻辑上真实大小本来就没超过short的范围,否则会发生数据溢出
		short result2 = (short) (num7 + num9);
		System.out.println(result2);
	}
}

 

关于ASCII码表

0对应48,1对应49,以此类推

A对应65,B对应66,以此类推

a对应97,b对应98,以此类推

Unicode码表:万国码,包含了更多的对照关系(汉字等等都有)

你可能感兴趣的:(java)