Java基础知识
概述
什么是java:1.是边编译边解释的面向对象的编程语言。
2.java语言是1995年发布的,发布语言公司是:Sun
3.下载安装Java时从Oracle官网下载,最好下载LTS长期维护版本。Java8,Java11,Java17
4.由于Java虚拟机JVM的存在,可以全平台运行。
5.java之父:james gosling oak
JDK安装
- JDK--Java Development kit(Java开发工具包)
- JRE--Java Runtime Environment(Java运行环境)
- JVM--Java Virtual Machines(Java 虚拟机)
- java的技术体系结构:安装jdk的时候,主要安装的是java se相关内容。
1.先到oracle官网去下载JDK(https://www.oracle.com/technetwork/java/javase/downloads/index.html)
2.打开环境变量设置
3.JAVA_HOME:jdk的安装路径
4.PATH:JDK的安装包中的bin目录--path配置之后,可以在命令行窗口使用命令
5.测试环境变量的配置:
window+R,然后输入cmd,就可以打开命令行窗口。然后输入java-version命令,查看安装jdk版本
java第一个程序
public class Test {
public static void main(String[] args) {
System.out.println("HelloJava");
}
}
java的变量
- 什么是变量:变量是指代在内存中的一块存储空间,用于存储程序运算过程中需要用到的数据。
- 变量的定义
变量声明的语法规则:变量类型 变量名字
- 在变量声明时同时初始化: 变量类型 变量名字 = 初始值
- 先声明变量,在第一次使用变量之前再对变量赋初值
- 未经声明的变量不能使用
- 如果多个变量的类型相同,可以在一条语句中声明,中间用逗号分隔
-
变量的命名需要符合Java标识符语法要求
-可以有字母,数字,”_”和”$”符组成
-首字符不能以数字开头
-Java是大小写敏感的语言,命名变量时需要注意
-不能使用Java保留字(Java语言规定好的,有特殊含义的字符:public static void…
-
中文可以作为变量名字,但是不推荐使用。
Java变量命名最好能“见名知意” Java编程规范要求:变量的命名需要采用“驼峰命名法”,即:如果Java变量名字由多个
英语单词组成,除第一个单词首字母小写外,其他的单词,需要首字母大写,其余的字母小写。如(timeMills)
java的关键字
java中基本数据类型
整形int
-
int是最常用的整数类型。一个int类型占用4个字节(32位),
最大表示范围为:-2147483648 ~ 2147483647
-
整数类型的直接量(literal)默认是int类型。
-
两个int整数相除(/),结果取整,舍弃小数部分(非四舍五入),结果还是整数
-
整数运算要防止溢出
-整数运算的过程中,运算结果,如果超过了整数能表示的最大范围,会发生溢出。
正数过大溢出,结果变为负数;负数过小溢出,结果变为正数。
-
代码
package day2;
// int数据类型介绍
public class IntDemo {
public static void main(String[] args) {
// 1. int的数据是占4个字节
int a = 10000 ;
System.out.println("a:" + a); // 输出变量a.
//int a1 = 10000000000 ;// 100亿 , 编译错误。 超过了int的最大范围。
int b = 1500000000;
int c = 1500000000;
int sum = b + c ; // 和超过了int的最大值
System.out.println("sum:" + sum);// sum:-1294967296 , 这里溢出了。
//2 . 直接量
int k = 100 ;// 这里的100就是直接量
System.out.println("k十进制:" + k);
int k1 = 0x100;
System.out.println("k1十六进制:" + k1);
int k2 = 0100;
System.out.println("k2是8进制:" + k2);
// 3. int数据的运算: + , - , * , /(取整) , % (取余)
int a1 = 9 ; // 定义变量
int a2 = 4 ;
int c1 = a1 + a2 ; // c1 = 13
int c2 = a1 - a2; // c2 = 5
int c3 = a1 * a2; // c2 = 36
int c4 = a1 / a2;// 取整: java程序中规定,两个整数的运算结果只能是整数(9/4
等于2)
// , 数学中(9/4等于2.25)
System.out.println("c4:" + c4);
int c5 = a1 % a2;// 取余: 获取两个数相除的余数
System.out.println("c5:" + c5);
// 思考, 怎么判断一个数据是奇数还是偶数
if(a1 % 2 == 0){ //a1 % 2 == 0 判断是否相等 , 结果是true或false.
System.out.println(a1 + "是偶数");
}else{
System.out.println(a1 + "是奇数");
}
// 除法的练习 :计算百分比
int current = 33 ;
int total = 50 ;
System.out.println("第一种:");
System.out.println( current / total * 100 + "%");
System.out.println("第二种:");
System.out.println( current * 100 / total + "%");
}
}
长整型long
-
如果要表示的整数已经超过了int的范围,那么可以用long类型定义变量,保存数据。
long类型数据范围(8个字节,64位):
-9223372036854775808~9223372036854775807
-
long类型直接量的表示,需要在数据后面加一个L或l;
-
通过long类型来存储系统当前毫秒数,jdk提供了一个方法( System.currentTimeMillis() ),来获 取从1970.1.1日零时至今的毫秒数,
返回结果为long.
-
对于较大的整数运算(超出int范围),可以使用long型。
-
代码
package day2;
// long : 长整形 , 8个字节 , 如果int数据范围不够,就选择使用long
public class LongDemo {
public static void main(String[] args) {
// 1. 定义long类型的变量
long a1 = 100;
// java中“直接量”默认为int类型。
// long a2 = 10000000000;// 100亿超过了int的范围,所以导致编译错误。
long a2 = 10000000000L ; // 在直接量后,添加"L 或 l "的标志,表示这个直接量
是long类型。
// 2. 时间毫秒数
// 练习: 自己计算一年的毫秒数
// long micro = 365 * 24 * 60 * 60 * 1000 ; //全部都是int类型参与运算,结
果就是int类型,超过int范围,就溢出。
long micro = 365L * 24 * 60 * 60 * 1000 ; // 把365转为long类型, 所以运
算结果就是long类型。
System.out.println("一年的毫秒数:" + micro);
// 3. 获取系统的时间毫秒数: 起点为1970.1.1 0:0:0 距离此刻的时间毫秒数
long time = System.currentTimeMillis();
System.out.println("距今的时间毫秒:" + time);
}
}
double&float
-
所谓的浮点类型就是小数类型,包含double 和 float。 浮点类型的默认直接量是double类型。 如果要使用float类型,需要在数据后面加F或f。
double类型的精度比float类型的精度高,因此,一般用double类型。
eg: float f1 = 3.3F; double money = 3.5;
-
double类型数据运算的时候,会有舍入误差。 由于舍入误差,导致浮点数不能精确运算。
二进制中无法表示1/10,就像十进制中无法精确表示1/3,所以二进制表示浮点数存在误差
-
代码
package day2;
// double - 双精度浮点型 (8个字节)
// float - 单精度浮点型 (4个字节)
public class DoubleDemo {
public static void main(String[] args) {
// 1. 定义变量
double a1 = 3.5 ;
//float a2 = 3.5 ;// 编译错误: java中的浮点数直接量默认是double类型。 不能
将double直接赋值给float.
float a2 = 3.5F ;// 直接量的好后面,使用“F 或 f” ,让直接量为float类型。
// 2. double 用于计算: + , - , * , / , %
double a3 = 1.5 ;
System.out.println(a1 + a3); // 5.0
System.out.println(a1 - a3); // 2.0
System.out.println(a1 * a3); // 5.25
System.out.println(a1/a3); // 2.3333333333333335
System.out.println(a1%a3); // 0.5
double a4 = 1.4 ;
System.out.println(a3 - a4);//0.10000000000000009
// 3. 练习: 计算自由落体运动的位移 : s = 1/2 * g * t * t;
double g = 9.8 ;
int t = 5 ;
double s ;
s = 0.5 * g * t * t; // 运算数据有double类型,因此整体的结构时double类型。
System.out.println("位移为:" + s ); // 位移为:122.5
}
}
char类型
-
字符类型实质上是一个16位的无符号整数,这是整数对应的字符编码
Java字符类型采用Unicode字符集编码。Unicode字符编码是国际上通用的定长字符集,所有字符 都是16位。 字符直接量,可以采用字符的形式,比如‘中 ’;
或者采用Unicode编码的方式,比如:‘\u4e4d’
字符是整数可以参与运算,比如 char c = ‘A’ ; int a = 10 + c ;//75
-
字符直接量赋值 整数赋值(0~65535) Unicode编码赋值
eg: char a = ‘A’; char a = 65; char a = ‘\u0045’;
-
转义字符(\):对于不方便输出的字符,采用转义字符表示。
- 代码
// char - 字符 , 本质就是一个整数 , 占两个字节, 且无符号位。
public class CharDemo {
p