JAVA基础总结

 一、基础语法

1.环境配置

1.安装JDK

   注意:可以安装多个JDK,版本为1.8,环境变量配置哪个,哪个就生效。

2.环境变量的配置

        JAVA_HOME:配置的是JDK安装的目录
        Path:配置的JDK下bin目录
        CLASS_PATH:配置的是JDK下的lib目录,也可以写一个点

3.win+R打开DOS命令,输入java javac java -version测试是否配置成功

4.开发工具eclipse

5.开发工具IDEA,注意路径不要出现中文

2.JDK JRE JVM

JDK(Java Development Kit):Java开发工具包--开发的最小单位
JRE(Java Runtime Environment):Java运行时环境--运行的最小单位
JVM(Java Virtual Machine):Java虚拟机--负责加载并运行对应的字节码文件.class

        1.运行过程:我们编写的源码是.java为后缀的,通过编译后生成的是.class字节码文件,交给JVM来执行
         2.跨平台:只要在不同的操作系统上安装对应的JVM,就可以实现跨平台:一份代码,处处运行

3.语法基础

1.关键字:

在Java中,有一些单词被赋予了特定的意义,一共有50个关键字。
这50个单词都是全小写,其中有两个保留字:const和goto。
注意,关键字不能被用作标识符! 

需要注意的是,除了上述的50个关键字以外,true,false,null也不可以被用作标识符~

2.标识符

UpperCamelCase大驼峰命名:
每个单词的首字母都要大写,比如类名:HelloWorld类名: Upper驼峰命名:每一个单词的首字母都要大写
LowerCamelCase小驼峰命名:
从第二个单词的首字母才开始大写,比如:方法名:nextLine() 变量名:deptName

在Java中,我们需要给代码中的很多元素起名,包括类名、方法名、字段名、变量名等等。我们给对应元素起的名称就被称为标识符,一个正确的标识符需要遵循以下规则:

1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
2. 不能以数字开头。如:123name 就是不合法
3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符
4. 标识符的命名最好能反映出其作用,做到见名知意。
5. 标识符不能是Java的关键字

3.注释

几乎所有编程语言都允许程序员在代码中输入注释
因为编译器会忽略注释,所以注释并不会影响程序的运行结果。
注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。
Java的注释有3种:

1. 单行注释: 注释单行内容.
格式: 每行都以”//”开头.
快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释

2. 多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.
格式: 以” /* ”开头, 以” * / ”结束.
快捷方式: 可以输入” /* ”之后按回车添加注释

3. 文档注释: 一般用来注释类和方法,通过注释内容来记录类或者方法的信息.
格式: 以” /** ”开头。 以” * / ”结尾
快捷方式: 输入 “ /** ” 之后按回车添加注释

4.变量

在JAVA中,我们需要记录一些数据
但这些数据的值是不固定的,总在变,我们可以把这些数据理解为变量。
我们通过三个元素来描述变量:变量类型 变量名以及变量值。
定义变量的两种格式:
格式一:声明变量时并且赋值:int age = 18;
格式二:先声明变量:String tel ; 然后给变量赋值:tel = 119;

注意:

  1. 变量名必须是一个有效的标识符
  2. 变量名不可以使用java关键字
  3. 变量名不能重复

二、基本类型

1.基本类型介绍(八种)

变量要保存值,这个值是存在内存中的,所以就需要向内存申请存储空间
java是一个强类型的语言
为了方便内存管理系统根据变量类型更加合理的分配内存空间
会把我们常见的数据,分成不同类型
不同类型分配的内存大小是不同的,这个大小的单位就是字节Byte
 

拓展:常用的转换关系:
位 bit,来自英文bit,音译为“比特”,表示二进制位。
1 Byte = 8 Bits (1字节 = 8位)
1 KB = 1024 Bytes 1 MB = 1024 KB 1 GB = 1024 MB

练习:查看基本类型的最大值与最小值

package cn.tedu.basic;
/**本类用于测试基本类型*/
public class TestTypeScope {
	//1.创建程序的入口函数
	public static void main(String[] args) {
		/**1.整形类型:byte short int long*/
		/**2.Java给8大基本类型都提供了类型对应的“工具箱”*/
		/**3.int类型的工具箱比较特殊,叫做:Integer*/
		//2.定义对应类型的变量:格式:类型 名字 = 值 ;
		byte byteMin = Byte.MIN_VALUE;
		byte byteMax = Byte.MAX_VALUE;
		System.out.println("byte类型的最小值为:" + byteMin);
		System.out.println("byte类型的最大值为:" + byteMax);
		
		short shortMin = Short.MIN_VALUE;
		short shortMax = Short.MAX_VALUE;
		System.out.println("short类型的最小值为:" + shortMin);
		System.out.println("short类型的最大值为:" + shortMax);
		
		int intMin = Integer.MIN_VALUE;
		int intMax = Integer.MAX_VALUE;
		System.out.println("int类型的最小值为:" + intMin);
		System.out.println("int类型的最大值为:" + intMax);
		
		long longMin = Long.MIN_VALUE;
		long longMax = Long.MAX_VALUE;
		System.out.println("long类型的最小值为:" + longMin);
		System.out.println("long类型的最大值为:" + longMax);
		
		/**4.浮点类型 :float double*/
		float floatMin = Float.MIN_VALUE;
		float floatMax = Float.MAX_VALUE;
		System.out.println("float类型的最小值为:" + floatMin);
		System.out.println("float类型的最大值为:" + floatMax);
		
		double doubleMin = Double.MIN_VALUE;
		double doubleMax = Double.MAX_VALUE;
		System.out.println("double类型的最小值为:"+ doubleMin);
		System.out.println("double类型的最大值为:"+ doubleMax);
		
		/**5.boolean布尔类型只有两个值true与false
		 * 虽然true和false不是关键字,但是也不可以用作标识符*/
		boolean b1 = true;
		boolean b2 = false;
		
		/**6.测试char 字符类型
		 * 字符型的数据需要使用单引号 ' ' 来包裹
		 * char类型可以存数字,但是会从ASCII码表查出这个数字对应的字符来打印
		 * 128~65535这些数字,也可以保存,但是eclispe一般显示为?*/
		char c1 = 'a';//字符型可以保存一个字母
		char c2 = '中';//字符型还可以保存一个汉字
		char c3 = '7';//字符型可以保存一个字符7
		char c4 = 97;//字符型可以保存数字,但是会查ASCII,打印的是字符a
		char c5 = 55;//字符型可以保存数字,但是会查ASCII,打印的是字符7
		char c6 = 199;
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		System.out.println(c4);
		System.out.println(c5);
		System.out.println(c6);
	}
}

 2.类型转换

 

口诀:小转大,直接转 大转小,强制转 浮变整,小数没

注意:布尔类型不参与类型转换
注意:基本类型之间能否转换,不取决于字节数,字节数只能做参考,取决于类型的取值范围
注意:我们这里所说的是基本类型之间的转换,引用类型之间的转换取决于是否有继承关系
比如:你可以说小猫是小动物,但是不能说小猫是小汽车,不然后面的这种错误的情况会报:类型转换异常

3.引用类型

除了基本类型以外的所有类型都是引用类型

4.字面值规则

  1. 整数类型的字面值类型是int
  2. 浮点类型的字面值类型是double
  3. byte short char 三种比int小的类型,可以在范围内直接赋值
  4. 三种字面值后缀 : L D F
  5. 三种字面值前缀: 0b-二进制 0-八进制 0x-十六进制
package cn.tedu.basic;
/*本类用于测试类型的前缀*/
public class TestTypePre {
    public static void main(String[] args) {
        //10-2 10-1  10-0
        System.out.println(100);//100-10的平方
        //操作二进制-0b
        //2-2 2-1 2-0
        System.out.println(0b100);//4-2的平方
        //操作八进制
        //8-2 8-1 8-0
        System.out.println(0100);//64-8的平方
        //操作十六进制
        //16-2 16-1 16-0
        System.out.println(0x100);//256-16的平方
    }
}

5.运算规则

1.计算结果的数据类型,与最大数据类型一致

System.out.println(3/2);//1,int/int,得到的结果类型还是int

System.out.println(3/2d);//1.5,int/double。得到的结果是double

2.byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a = 1;

byte b = 2;

byte c = (byte)(a+b);

//a+b会自动提升成int类型,右面得运算结果就是int大类型

//给左面的byte小类型赋值,不可以,需要强转。

3.整数运算溢出

 整数运算,类似于一个钟表,转到最大时,再转会回到最小。
计算:光速运行一年的长度是多少米?3亿m/s

//溢出的现象:

//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。

System.out.println(300000000L * 60 * 60 * 24 * 365);

4.浮点数运算不精确

1-0.8 (这是一个现象,后续会提供解决方案)

5.浮点数的特殊值

Infinity 无穷大 3.14/0

NaN not a number 0/0.0 或 0.0/0

三、运算符

 1.概述

运算符 用于连接 表达式 的 操作数,并对操作数执行运算。
例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。
在java语言中,运算符可分为5种类型:
算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。
根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。
单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。

2.运算符速查表

 练习:测试自增自减

package cn.tedu.basic;
/**本类用于测试取余运算符*/
public class TestOperator {
	//0.创建程序的入口函数main
	public static void main(String[] args) {
		//1.测试除法与取余数
		System.out.println(25 / 10);//2
		System.out.println(25 % 10);//5
		
		//2.练习1:获取一个两位数59的十位与个位
		int x = 59;
		System.out.println(x/10);//打印十位,5
		System.out.println(x%10);//打印个位,9
		
		//3.练习2:获取一个三位数159的百位、十位与个位
		int y = 159;
		System.out.println(y / 100);//打印百位
		System.out.println(y / 10 % 10);//打印十位
		System.out.println(y % 10);//打印个位
		
		//4.测试自增自减运算符
		/** 前缀式:符号在前:++a --a ,先改变变量本身的值,再使用,比如打印
		 * 后缀式:符号在后:   a++ a--,先使用,再改变变量本身的值
		 * ++:相当于给变量本身的值+1
		 * --: 相当于给变量本身的值-1*/
		System.out.println("我是一个无情的分界线");
		
		/**普通的四则运算并不会改变变量本身的值
		 *    自增自减运算符才会改变变量本身的值*/
		int z = 1;
		System.out.println(z+4);//5
		System.out.println(z);//1
		
		int a = 1;
		System.out.println(++a);//2
		System.out.println(a);//2
		
		int b = 1;
		System.out.println(b++);//1
		System.out.println(b);//2
		
		int c = 1;
		System.out.println(--c);//0,符号在前,先自减,再打印
		System.out.println(c);//0,上面已经自减过了
		
		int d = 1;
		System.out.println(d--);//1,符号在后,先打印,再自减
		System.out.println(d);//0,打印过后,自减成0
		
		//之前的代码会对后面的代码产生影响,c的值是0
		System.out.println(c);//0
		System.out.println(--c-c-c--);//1,-1-(-1)-(-1)=1
		System.out.println(c);//-2,经历了两次自减,所以0-2=-2
		
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值