
Java起源:
-
Java之父 詹姆斯高斯林
-
詹姆斯高斯林在IBM公司开发电视接收器(机顶盒)的时候发现用现有的C++ 等高级语言开发起来非常困难,于是基于C++(ps C++为半面向对象 半面向过程的高级语言) 开发出了Java 最开始叫(C++--)后来经过一系列的改名为Java。
Java版本
-
Java1.8为巅峰神作
-
现在基本上用1.11 版本
-
最新版已经1.17版
Java的特性:
-
简单性 封闭了指针的使用 不像C C++语言可以直接对内存进行 *** 作 简化了编程
-
健壮性 内部提供了GC(垃圾回收装置)由系统自动回收
-
可移植性 一次编译多次使用(因为JVM的存在PS因为JVM的存在导致Java的运算速度受到影响)
-
完全面向对象 最重要的特性
Java执行过程和相关文件后缀
-
1.编译期 由程序员先编写源程序 保存文件为 .java文件
-
2.运行期: 由编译期编译为.class文件后交给JVM执行
Java环境搭载
-
1.path path路径搭载我们java的bin目录 路径
-
2.classpath 先配置一个 . 点表示为当前路径
-
JAVA_HOME :这个变量在前期其实体现不到用处的, 该变量是在JavaWeb中课程要使用Tomcat中要配置 。其原因可以查询Tomcat的配置文件中必须要求。
关于path路径 : path路径是我们 *** 作系统的一个环境变量 , 如果不配置path路径的话输入我们的java命令时会提示找不到该命令 所以path变量就是告诉 *** 作系统我们软件的命令(bin)的路径在哪 *** 作系统就可以根据路径去找到命令。所以 当我们在安装任何软件时如果使用命令发现提示找不到该命令时 就要去path命令。
基础语法
变量
-
变量 : 变量是内存中开辟的一块空间 里面存的是数据
-
变量 = 数据类型 + 变量名 + 字面值
-
变量必须先声明在赋值后才能使用
命名
关于Java中的命名
-
命名规则
-
1.命名有字母 下划线 美元符 数字 组成
-
2.严格区分大小写
-
不能以关键字命名
-
数字不能做开头
-
PS(因为Java的字符编码为UTF-8 所以在命名时测试时发现其实中文汉字也是可以出现的但是不建议使用)
-
命名规范
-
关于规范 规范是为了让代码可读性提高 不要遇到方法名 变量名 就开始 A B C 读起来很痛苦 后面的维护也很麻烦
-
1.遵循驼峰命名方式
-
2.见名知意
-
类名 接口名 遵循大驼峰 (首字母大写 后面每一个单词首字母大写)
-
方法名 变量名 遵循小驼峰(首字母小写 后面每一个单词首字母大写)
数据类型
基本数据类型:
-
整型 浮点型 字符型 布尔型
-
整型 byte short int long
-
浮点型 float double
-
字符型 char
-
布尔型 boolean
-
引用数据类型
-
除了基本数据类型都是引用数据类型
-
例如 String
变量 分类:
-
局部变量 :方法体之内
-
成员变量 : 类体中
PS(关于变量的直接量)整型直接量为 int 浮点型直接量为double
直接量的意思为: short x = 1 (1的数据类型为int类型)
float y = 1.0 (1.0的数据类型为double)
关于数据类型间的转换规则:
byte < short< int < long < float < double
char < int < long < float < double
关于(short和 char 因为 short 是有符号位的 char没有符号位 所以char能表示 0 ~65535 short表示到-32768 ~ 32767)
-
1.Boolean类型无法进行转换 并且(boolean类型只能为 true 和false 不跟C++ 一样可以用 1, 0 表示)
-
小转大为自动类型转换
-
大转小为 强制类型转换 : 可能会损失精度
-
只有byte short char 在进行运算时(会转为int 类型进行运算)
-
在有大的类型时会先转化为大类型运算
关于 x+=1
byte x = 127 ; 1.x+=1 ? 2.x = x + 1 ; ? //以上两行代码意思一样? 其实不太一样 1转化过来是 x = (byte)x + 1 x还是byte类型 2的意思则是 x为byte 型 (x+1)byte+int类型要转化为int 类型 而x为byte类型 需要强制类型转换 那如果 byte z = 1; 这里面存在一个规则 : 当byte short char 赋值时没有超过自身的范围时可以直接赋值
关于 浮点 类型的 舍入现象
-
舍入现象 电脑由于字长(64位)的原因 是无法表示0.1 的浮点数 就跟 10 / 3一样
关于运算符
-
算术运算符+、 -、 *、 /、 %、++
public class Test01 {
public static void main(String[] args) {
int x = 1;
//关于自加自减的理解 这个理解后其他的乱杀
System.out.println(x++);//1
System.out.println(x++);//2
System.out.println(x++);//3
System.out.println(++x);//5
System.out.println(++x);//6
System.out.println(++x);//7
System.out.println(++x);//8
System.out.println(--x);//7
System.out.println(--x);//6
System.out.println(x--);//6
System.out.println(x--);//5
System.out.println(x--);//4
其他运算符注意 / 整型/整型 = 整型
5 / 2 = 2 取商
5 % 2 = 1 取余
}
}
-
关系运算符 < > = <= >= !=
-
逻辑运算符 & | && ||
关于逻辑与 和 短路与
public static void main(String[] args) {
int x = 2;
int y = 1;
System.out.println(x++ > 1 & y-- == 0);//false
System.out.println(x);//3
System.out.println(y);//0
结论: 当逻辑与前面表达式为false 时后面表达式还是执行
int x1 = 2;
int y1 = 1;
System.out.println(x1++ > 2 && y1-- == 0);//false
System.out.println(x1);//3
System.out.println(y1);//1
结论:当短路与前面表达式为false时 后面表达式不会执行。
}
结论: 当逻辑与前面表达式为false 时后面表达式还是执行
结论:当短路与前面表达式为false时 后面表达式不会执行
-
赋值运算符 = (优先级最低)
-
字符串连接符+ (当+两边有字符串时会进行字符串拼接)
关于控制语句
-
1.选择语句 if switch
-
switch 中要注意 case 穿透现象 (当case中没有break退出时会继续往下执行知道遇到break或者结束为止)
-
switch 中表达式只能为整型 char 1.8之后加入String (因为String底层本质保存为整型)
-
-
循环语句 while do while for
-
关于for循环 (基本for循环和 foreachfor加强for循环)
-
理解加强for循环的本质 : 集合利用迭代器Iterator进行迭代 普通的数组转换为普通for循环进行遍历
-
-
转向语句 break return continue
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)