目录
Java基础知识汇总
Java历史
Oak(橡树)语言,由Green开发团队开发,主要用于微型嵌入式设备编程,第一次提出了“开源协议”,Java之父詹姆斯.高斯林经历过SUN公司接手之后,最终由Oracle收购,1995年语言更名为“Java”,正式发布JDK1.0
1996年,为应对发展需求,分为了三个方向:
1.J2SE:Java标准语法(学习Java开发体系的必备基础) JAVA SE
2.J2ME:微型嵌入式领域编程 JAVA ME
3.J2EE:企业级开发 JAVA EE
2006年,JDK1.6开源所有代码
JDK安装
1.进入JDK官网 找到 JDK11 下载地址:
[Java Downloads | Oracle](https://www.oracle.com/java/technologies/downloads/#java11)
2.选择对应版本,进行安装
3.在控制台查看是否安装好
win + r 打开运行窗口
输入cmd 回车
在命令提示符窗口 输入 java -version
JDK版本切换
1. win + r 打开运行窗口
2.输入 regedit 回车
3.注册表中 逐一打开 HKEY_LOCAL_MACHINE,SOFTWARE,JavaSoft
4.在 Java Plug-in修改主体版本
认识JetBrains
2.目前世界上主流开发软件:IDEA、WebStorm、PyCharm
3.特点:智能的代码提示功能
最新的开发支持
代码自动保存
安装IDEA
1、下载最新版本的idea
IntelliJ IDEA – 领先的 Java 和 Kotlin IDE (jetbrains.com.cn)
推荐Java11之前的版本
2、下载完成后,直接安装IDEA即可。
JDK
JDK 是Java开发工具包 全称 Java Development Kits
在JDK中 含有运行.java文件的虚拟机(解释器)
1.Java的源文件 开发文件以 .java结尾
2.虚拟机 解析.java文件
虚拟机
JVM java虚拟机 全称 Java VAirtual Machin
专门为了解析.java文件存在的一种软件
JRE
JRE Java运行环境 全称 Java Runtime Environment
用来运行.java文件的核心内容
* JDK包含JRE,JRE中有JVM
Java概述
Java是一门编译解释语言,也可说是一门解释语言
1.编译语言是指定文件, 编译到指定位置,生成指定的二进制文件,特点:效率高、速度快
2.解释语言是指定文件,解释道任何位置,生成指定的二进制文件,特点:跨平台性好
Java运行
class + 类名 :定义了一个类
* public 修饰了class,则类名必须与.java文件名一致
若class 没有被public修饰,则类名可随意
同一文件中可以定义多个类名,但public修饰的类名只能有一个
入口:main方法
入口:main入口(固定不可变)
形参:args(可变)
Java文件运行起来时,一定会执行main方法(入口方法)
变量
变量:一个可以装载“字面量”的容器
*代码结尾要用;号
数据类型 变量名称 = 数据值(字面量):声明变量并初始化
int a = 1;
数据值的数据类型必须要与声明的数据类型保持一致
变量可以相互声明
命名规则:
1.必须以_或者$或者英文字母开头,大小写敏感
2.中间可加数字
注释
单行注释:通常在代码上面或者后面 对常量或者某一段代码进行注释
快捷键:ctrl + /
多行注释:可一次性进行多行注释
快捷键:/* + 回车
文档注释:对类名或者方法名等进行注释
标识符
标识符:为变量、类(接口)、方法命名的符号
命名规则:
开头使用_、$、英文字母,区分大小写
中间可加数字
不能使用关键字、特殊符号命名
名字中间不能换行
不能太长
命名方法:
驼峰法:1.小驼峰法,开头单词首字母小写,通常用于命名变量和方法
2.大驼峰法,开头单词首字母大写,通常用于命名类和接口
下划线隔断法: my_name
关键字
50个常用
Java 由 c/c++演变而来
保留字:goto const (true false null)
goto const 已被弃用
基本数据类型
整数类型 int (byte short long) 默认int
八进制 逢八进一 在数值前加0
十六进制 逢十六进一 在数值前加0x
无论数值类型以何种方式表示,都是以十进制输出
整数类型 long
int数值范围无法表示的情况下用long类型
数值后加L或l
浮点类型 float
float定义浮点数类型时们需要加上F或f
浮点类型 double 默认
科学进制表示方式:E:10的多少次方
double d1 = 0.000000123;
double d2 = 1.23E-7;
字符类型 char
char类型只能用单引号,单引号中只有一个字符或数字
右侧是ASCII编码
ASCII编码是一个计算机编码
Unicode编码
char c1 = ‘\u0000’;
转义字符:\n 换行 \t 制表符 \r 回车
数据类型转换
大小:byte < short < int < long < float < double
大范围数据类型 == > 小范围数据类型 : 强制转换
运算方向从右往左
byte c = (byte)b;// 丢失精度,值溢出,内存溢出
小范围数据类型 == > 大范围数据类型 :自动转化
口诀:大转小要强转,小转大自动转
数值类型的值不可以强行转化为bollean值
运算符
运算表达式的最终类型,由运算表达式中最大类型来决定
++ 与 --运算
如果运算符在前,先对值进行自加,在将值赋值给左侧
如果是变量在前 ,先把值赋值给左侧,再自加
字符串的拼接
字符串的拼接判断依据: + 的任意一侧有字符串出现时,它就是拼接符
字符串拼接符 与非普通的加减运算优先级一致
拼接符的使用会直接消耗内存,执行效率低
逻辑运算符
逻辑运算符两侧必须是布尔表达式
布尔表达式:表达式的值必须是true或者flase(boolean类型)
& && 与 并且 一假即假
| || 或 可能 一真即真
! 非 去相反的布尔表达式值
&&:短路与 &:逻辑与 即便前面的条件为false ,后续条件继续判断
||: 短路或 |:逻辑或 若前面条件为真,后续条件没必要判断;若为假,后续条件任然判断
位运算
& 按位与:二进制比较,对位都为1结果为1
| 按位或:二进制比较,对位都为0结果为0
^ 异或:二进制比较,对位不相同结果为1
~ 非位(了解):把所有二进制位取反(包含了·符号位)
三目运算表达式结构:
条件 ? 选项1 :选项2
int age = 23;
String tip = age < 18 ? “禁止入内” :“欢迎进入”;
System.out.println(tip);
判断语句
if语句
if (布尔表达式){执行语句}
如果布尔表达式成立,就会执行“执行语句”,否则直接跳过这一次判断
if...else语句
if(布尔表达式){执行语句}else{执行语句}
如果布尔表达式成立,就会=执行if中的“执行语句”,否则执行else中的“执行语句”
if...else if语句
if(布尔表达式){执行语句}else if(布尔表达式){执行语句}
如果if中布尔表达式成立,就会执行if中的“执行语句”;如果else if中的布尔表达式成立,就会执行
else if中的“执行语句”
Scanner
输入用户输入数据
Sacanner scan = new Scanner(System.in);
int n = scan.nextInt();//整数
double n = scan.nextDouble();//浮点数
String n = scan.nextLine();//字符串
随机数
Math.random()
Math.random() 创建一个0~1的数(且不包含1) double类型
0~10的随机整数
System.out.println((int)(Math.random() * 11));
switch语句
switch(数据值或变量){case 值1:...;case 值2:...;...}
1.switch括号中一般是变量,变量需要指定特殊数据类型(byte short int char String(Character))
switch不可以设置的类型有:long double float
2.有误break的情况(break 跳出(停止)switch语句),没有break情况,程序会继续往后执行
3.关于if语句与switch区别:switch不能判断范围条件
4.default除了case之外的其他条件,default为了程序健壮性