Java(半解释半编译)
学习心得
今天开始学习java,虽然以前学过一些,但是通过今天的学习,使我温故而知新,巩固了以前学的知识,还学到了一些没接触过的知识,比如基本的数据类型的一些小细节,以前没学过,现在知道了,感觉对我以后的java学习有很大的帮助,毕竟基础是最重要的。感觉以后还是需要定期复习,不能说学了就不去管了,还是会忘记很多知识,只有定期复习才能记得跟牢固。以下的内容是我今天总结的知识点。
今日重点
java的环境搭建
window系统dos界面的操作
.java在虚拟机中转成.class文件,再由电脑去解释
8种基本数据类型
类型转换
解释: 语言。JS,浏览器可以直接运行JS,不需要翻译
编译: Java,Scala。 hello world是程序员写的,以10进制为单位写的文件。计算机只认识二进制。我们所写的java文件计算机是不认识的,我们需要有一个翻译把我们写的java文件翻译给计算机听。
Java的历史
1995年,詹姆斯高斯林,sun公司,发明了java语言。印尼的爪哇岛。java语言。寓意就是为全世界软件爱好者递上一杯热乎的咖啡。早期,移动端。2009年sun公司被oracle(甲骨文)旧金山收购。
java用C和C++写出来的
计算机
软件:看不见摸不着。操作系统:Windows、Linus、macOS
硬件:看得见,摸得着 cpu 显卡 内存
内存
物理内存,虚拟内存
操作系统
会一些基本的指令
- 打开指令控制台win+r cmd
- 输入盘符e:,直接切换到目标的盘
- cd返回上一级目录
- 进入指定的目录cd a
- dir指令查看当前目录下的文件夹信息
- 创建一个空文件copy nul a.txt
- 向文件内写入内容echo 123456>a.txt
- 复制文件copy a.txt b.txt
- 删除文件del a.txt不走回收站
计算机的一些设置
- 显示后缀名
- 文件的浏览方式
- 建议不要用第三方杀毒软件。尤其是360
二进制
存储单位:
1 bit = 一位
1 byte = 8 bit
1 kb = 1024 b
1 mb = 1024 k
1 gm = 1024m
二进制的加减法计算
十进制是逢十进一,二进制是逢二进一,十进制最大数是9,二进制最大数是1
第一位是符号位,0是正,1是负
八进制 1234567
十六进制 12345678abcdef
Java的三个版本
JavaSE:做桌面应用程序
JavaEE:企业级应用
JavaME:手机端,淘汰
Java的特点
- 面向对象
- 跨平台:平台就是操作系统。用Java写的软件可以在任意操作系统上运行的
- 简单性,和c比
- 解释执行:计算机执行的是.class,解释执行.class
- 多线程。多个任务同时进行
- 分布式
- 健壮性:强数据类型的语言、异常处理、垃圾回收机制
- 安全性
Java环境搭建
- 安装java
- 配置环境变量
1.计算机-右键-属性-高级系统设置-环境变量-系统变量上新建JVAV_HOME,(C:/Java/jdk1.8.0_171)-确定
2.找到原来就存在的Path,双击打开,不要动里面原有的值,新建,粘贴jdk安装路径直到bin目
录的路径(C:/Java/jdk1.8.0_171/bin或%JAVA_HOME%/bin),点击所有的确定
3.常用的指令,java javac java -version java -jar
写一个程序
1.创建一个hello.java
public class hello{
public static void main (String [] args){
System.out.println("hello2022");
}
}
- 通过cmd找到这个.java文件
- java文件是我们写的,计算机不认识,现在我们需要翻译,使用javac指令操作hello.java,结果生成了hello.class。这
个hello.class就是计算机要去解释的文件,hello.class我们是不认识的,说明hello.class是一个二进制文件,把我们写的hello.java以二进制转成hello.class,又叫做字节码文件。 - 执行hello.java, java hello
总结一下
通过javac hello.java把它编译成了.class,系统去解释执行了这个hello.class
到底是谁做的这些事
在我们去配置环境变量的时候,实际上相当于在系统上搭建了一台虚拟机
JDK: java developer kit , java开发工具包
JRE: java runtime environment java,java运行环境。如果只需要运行,不需要开发,可以只安装JRE
JVM: java Java Virtual Machine ,java虚拟机
java注意
- java是严格区分大小写
- 写代码的时候,一行代码要么用;结束,要么写{}
- 所有的符号都是英文状态下
- 代码提示,一定要看代码提示,如果你写的东西没有提示,多半就错了
- idea有报错功能,如果你发现你写的东西没有提示,多半就错了
- 安装tran(翻译) code(提示)
类
类是Java开发中的一个最小的单位,一个Java开发的项目是由一堆的类组成的class
命名规则
在开发中只要是可以命名的东西,标识符
类名的命名规则
- 只能由字母,数字,下划线,美元符号组成,数字不能开头。不建议使用$号,下划线尽量不要开头,推荐使用英文字母和数字,大部分都是使用字母(英文单词),驼峰命名,如果这个类名由多个单词组成,每个单词的首字母大写
Java中的注释
- 单行注释 //
- 多行注释 /* */
- 文档注释 /** /
- 三种注释都有调试代码
public static void main(String [] args)
主方法是一个程序运行的入口
System.out.println();
控制台打印输出语句
关键字
官方的解释:这个字有他独一无二的作用
在idea里蓝色的字就是关键字
++关键字不能用来命名!! 关键字都是小写!++
java中有48个左右的关键字 两个保留字,goto const
Java中的数据类型
2种,基本数据类型,引用数据类型
基本数据类型
4类8种(都是关键字)
整型
byte:字节型 -128~127 1字节=8位
short:短整型-2^15 ~ 2^15-1 2个字节=16位 2万多
int:整型-2^31 ~ 2^31-1 4个字节=32位 4亿多
long:长整型 -2^63 ~ 2^63-1 8个字节=64位(使用长整型需要在值后面加上一个L)
浮点型
float:单精度浮点型 4个字节=32位。很大,比long还大。小数(需要在值后面加上一个F)
double:双精度浮点型 8个字节=64位。很大,比long还大。小数
字符型
char:字符型 2个字节=16位 0~255(字符型需要加单引号,且引号中只能放一个)
布尔型 Boolean,true,false 1个字节=8位
变量
定义变量,为了后期的维护,重复利用
减少使用字面量
标识符,变量名的命名规则,小驼峰。变量的
如果在程序中看到一个正数的字面量,就是int
如果你看到一个字面量的小数,就是double
java中的除法(/),如果是两个整数相除,得到的一定是整数,整数和整数做运算,得到的一定是整数
java中的+-*/%,数据类型严格的变成语言
精度
整型: 4种整数类型,精度是和位数挂钩,位数越大,精度越高
浮点型:double的精度比float要高
浮点型 > 整型
低精度和高精度的做计算,得到的一定是高精度数据类型的结果
大给小,有一种可能是小的装不下,所以大不能给小
- 自动类型转换(自动类型提升)低精度–>高精度
- 强制类型转换 高精度->低精度。如果平白无故的想把低精度转成高精度,也是得强转
public class Ch03 {
public static void main(String[] args) {
byte b = 127;
b = (byte)(b + 1);
System.out.println(b);
}
}
无论是 a++ 还是 ++a,它的本意是让a自增
public class Ch05 {
public static void main(String[] args) {
int a = 10;
/**
* a++ = 10
* a = 11
* ++a = 12
* a = 12
* a++ = 12
* a = 13
*
* 10+12+12+13=47
*/
System.out.println(a++ + ++a + a++ + a);
}
}
a++:表示先赋值后运算
++a先运算后赋值
赋值运算符:
+= , -= , *= , /= ,%=
从计算结果来看,a += 1 —>a = a + 1
赋值运算符可以进行数据类型的转换,包括a++也可以
public class Ch06 {
public static void main(String[] args) {
byte b = 127;
b += 1;
b++;
}
}
逻辑运算符
与:只有当所有条件都为true,整体的结果才为true。如果有一个为false,则整体即为false。
双与:当发现条件中,只要有一个false,则停止判断。
单与:无论有多少个false,所有条件都看
或:只有当所有条件都为false,整体的结果才为salse。如果有一个为true,则整体即为true。
双或和单或同上
非:取反
异或(^):有假有真即为真,全真全假即为假
位运算符( & | )
左移3位
2 << 3 二进制运算(2*2^3)
三元运算符
public class Ch08 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a>b ? a : b);
}
}
java里的三元运算符要求两个表达式的运行结果的数据类型是相同或可以自动转换成相同的
char
char类型是16位的,和short是一样的,可以自动转换成int,long,float
当char自动转换成数值类型,会对应ASCII码去转换
把整数类型转换成char类型,会对应ASCII码去转换
由于char类型具有这样的特殊性,开发中尽量不用char
映射表 ASCII码
字符型 每一个字符在计算机保存时都是以ASCII保存的
原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/tech/java/274183.html