2022-07-13 第二小组 张宁杰 Java基础
今日重点
Java的数据类型、Java不同数据类型间的转换、赋值运算符、逻辑运算符、位运算符、三元运算符
学习心得
今日复习了如何搭建Java运行环境,并对大二学习的Java SE基础进行了复习,学习过程中,我发现自己对Java相关运算符的使用不够熟练
学习内容
1、Java语言:半解释半编译
解释:
语言。JS。浏览器可以直接运行JS。不需要编译
编译:
Java,Scala。Hello.java是程序员写的,以10进制为单位写的文件,计算机只认2进制。我们所写的Java文件计算机是不认识的,我们需要有一个翻译把我们写的Java文件翻译给计算机听。
2、Java历史
1995年,詹姆斯高斯林,sun公司,发明了Java语言,印尼的爪哇岛。Java语言,寓意就是为全世界软件爱好者递上一杯热乎的咖啡。早期,移动端。2009年sun公司被oracle(旧金山)收购。
Java用什么写出来的?
C和C++,C是万物之祖
3、计算机及其相关基本操作:
软件:
看不见摸不到。操作系统:windows、linux、MacOs
硬件:
看得见摸得到CPU、显卡、内存16G固态硬盘512以上。尽量不要买混合硬盘。CPU尽量在四核以上。CPU4核,16+512的内存硬盘。
内存:
物理内存,虚拟内存
操作系统:
以下为一些基本的指令
(1) 打开指令控制台 win+r
(2) 输入盘符c:,直接切换到目标盘符
(3) Cd..是返回上一级目录
(4) 进入指定的目录cd a
(5) Dir指令查看当前目录下的文件夹信息
(6) 创建一个空文件copy nul a.txt
(7) 向文件内写入内容:echol 123456>a.txt
(8) 复制文件copy a.txt b.txt
(9) 删除文件del a.txt不走回收站
计算机的一些设置:
1、 显示后缀名
2、 文件的浏览方式
3、 不使用第三方杀毒软件。尤其是360
二进制:
存储单位:
1bit=一位
1byte=8bit
1kb=1024b
1mb=1024k
1gb=1024m
1tb=1024g
1pb=1024t
二进制的加减法计算:
二进制是逢二进一,十进制逢十进一。十进制的最大数是9,二进制的是1
负数:
0000000001
1000000001
1000000010:-2
八进制、十六进制
4.Java:
Java的三个版本:
JavaSE:做桌面应用程序/Java基础
JavaEE:企业级应用
JavaME:手机端,淘汰
Java的特点:
1、 面向对象
2、 跨平台(即跨操作系统)。用Java写的软件可以在任意操作系统上运行的
3、 简单性(和C相比)
4、 解释执行计算机执行的是.class,解释执行.class
5、 多线程:多个任务同时进行
6、 分布式
7、 健壮性 强数据类型的语言、有异常处理、垃圾回收机制
8、 安全性 插件设置一个安全防范机制
Java环境搭建:
1、安装java
2、配置环境变量
1.计算机-右键-属性-高级系统设置-环境变量-系统变量上新建JAVA_HOME(C:\Program Files\Java\jdk-11.0.15)-确定
2.找到原来就存在的Path,双击打开,不要动里面的原有的值,新建,粘贴jdk安装路径直到bin目录的路径(C:\Program Files\Java\jdk-11.0.15\bin或%JAVA_HOME%\bin),点击所有的确定。
3、常用的指令 java,javac,javap,java -version,java -jar
3、写一个程序
(1)创建一个.java文件
public class hello { 声明一个类,名字叫做hello
public static void main(String [] args){ 主方法,程序运行
System.out.println("hello2022");打印输出,相当于console.log();
}
}
(2)通过cmd指令控制台找到这个java文件
(3)java文件是我们写的,计算机不认识,现在我们需要翻译(编译)一下,使用javac指令操作hello.java
结果生成了一个hello.class。这个hello.class就是计算机要去解释执行的文件。这个hello.class我们
是不认识的,说明这个hello.class是一个二进制文件。把我们写的hello.java以二进制的形式转成了hello.class,
hello.class又叫做字节码文件。
(4)执行hello.class,java hello
总结:通过javac hello.java把它编译成了.class,系统去解释执行了这个hello.class
到底是谁做得这些事?
在我们去配置环境变量的时候,实际上相当于在系统上去搭建了一台虚拟机
JDK:java developer kit java开发工具包。JDK10之前,是有单独的JRE,JDK11往后,没有单独的JRE
JRE:java runtime environment java运行环境。如果只需要运行,不需要开发,可以只安装JRE
JVM:java virtual machine java虚拟机
使用idea注意事项
1、Java是严格区分大小写的
2、写代码的时候,一行代码要么用;结束,要么写{}
3、所有的符号都是英文状态下
4、代码提示,一定要注意看代码提示,如果写的东西,没有代码提示,多半是有错的
5、idea有报错功能,如果发现写的代码有错误,就不要运行。
什么是类?
类是Java开发中的一个最下的单位,一个Java开发的项目是由一堆类组成的。
标识符的命名规则:
在开发中,只要是可以命名的东西就是标识符。
类名的命名规则:
只能由字母,数字,下划线,美元符号组成。数字不能开头。但是不建议使用$号,下划线尽量不要开头,推荐使用英文字母和数字,大部分都是使用字母(英文单词),驼峰式命名,如果这个类名由多个单词组成,每个单词的首字母大写
Java中的注释:
1.单行注释
2.多行注释Ctrl+shift+/
3.文档注释
三种注释都有调试代码
关键字:
官方解释:这个字有它独一无二的作用(在idea里蓝色的都是)
关键字(53个,其中有两个保留字:goto、const)不能用来命名!!!!关键字都是小写
Java中的数据类型:
基本数据类型(4类8种)会读会写,知意
整型(byte:字节型 -128~127 1个字节=8位
short:短整型 -215~215-1 2个字节=16位 2万多
int:整型 -231~231-1 4个字节=32位 4亿多
long:长整型 -263~263-1 8个字节=64位 很大)使用长整型需要在值后面加上一个L
浮点型(float:单精度浮点型 4个字节=32位。很大,比long还大。小数。 使用float需要在值后面加上一个F;double:双精度浮点型 8个字节=64位。很大,比long还大。小数)
字符型(char:字符型 2个字节=16位 0~255)字符型需要加单引号,并且引号中只能放一个
布尔型(boolean,true,false 1个字节=8位 1位1 0)
引用数据类型:类、接口、数组
char的特殊性
//char的特殊性
char a = ' ';
int i = a - 20;
char b = (char)i;
//映射表ASCII码
//字符型abcdef每个字符在计算机保存时都是以ASC码形式
//char类型是16位,short是一样的,可自动转换成int,long,float
//把整数类型转化成char类型,会对应着ASCII码去转换
//由于char类型有这样的特殊性,开发中尽量不适于char
//+号任然有连接符的功能
System.out.println(b);结果为M
不同数据类型之间的计算:
byte b = 127;
b = (byte)(b + 2);
System.out.println(b);
//结果为-127
double d = 1.1;
int x = (int)d;
System.out.println(x);
//结果为1
int i1 = 10;
int i2 = 20;
System.out.println((double) i1 / i2);
//结果为0.5
int a = 10;
//a++;
//System.out.println(a++);
System.out.println(a++ + ++a + a++ + a);结果为47
/*
a++:先赋值后运算
++a:先运算后赋值
如果a = 10: a++? 10;++a 11;a 11
*/
变量:
定义变量,为了后期的维护,重复利用。
在开发过程中,要减少使用字面量
标识符:
变量名的命名规则,小驼峰stuNo,命名要有规范,不能有拼写错误
变量的值通过=赋值,把等号右边的值通过等号赋值给等号左边的变量。
如果在程序中看见了一个整数的字面量,没有任何数据声明的话,它默认是int
----------------小数-------------------------double
Java中的/,如果是两个整数相除,得到的一定是整数
整数和整数做运算,得到的一定是整数
Java中的加减乘除,数据类型严格的变成语言
精度:
整型:4种整数类型,精度是和位数挂钩的,位数越大,精度越高
浮点型:double的精度比float高
浮点型>整型
低精度和高精度的做运算,得到的一定是高精度数据类型的结果
为什么int 类型的数据给byte给不了?
大给小,有一种可能是小的装不下,所以大不能给小
数据类型的转换:
自动类型转换(自动类型提升)低精度到高精度 byte int
强制类型转换 高精度到低精度。如果就要把低精度给高精度,也是得强转
a++、++a:本意是让a自增1
没有a** a// a%%
赋值运算符:
+= -= *= /= %=
从计算结果来看,a+=1--->a = a + 1
赋值运算符可以进行数据类型的转换,包括a++也可以
//赋值运算符
byte b = 127;
//b = b + 1;
//b += 1;
//b++;
System.out.println(b);结果为-128
int a = 10;
int b = 20;
double c = 10.0;
System.out.println(a == c);a会变成double型再比较
逻辑运算符:
与:只有当所有条件都为true,整体的结果才是true。如果有一个为false,则整体即为false
双与:当发现条件中,只要有一个false,则停止判断(效率高)
单与:无论有多少false,所有条件都看
或:只有当所有条件都为false,整体的结果才是false。如果有一个为true,则整体即为true
双或和单或同上
非:取反
异或:有假有真即为真,全真或全假都为假
//逻辑运算符 与 或 非 异或
int a = 10;
int b = 20;
//与 && (短路与)&
//或 || (短路或)|
System.out.println(a > 5 && b > 21);false
System.out.println(a > 5 ^ b > 1);true
位运算符
//位运算符 二进制
//00001010
//00010100
int a = 10;
int b = 20;
System.out.println(a & b);
System.out.println(a ^ b);
System.out.println(a | b);
int x = 2;
//<<左移三位
//System.out.println(2 << 3);2*2^3
//>>右移三位
//System.out.println(x >> 3);2/3^1
int y = -2;
//>>>无符号右移,将运算符左边的对象向右移指定的位数。采用0的扩展机制,不考虑符号
System.out.println(x >>> 1);
三元运算符
//三元运算符
int a = 10;
int b = 20;
//double = 20.5;
//double max = a > b ? a : b;
//char = 'a';Java里的三元运算符,要求2个表达式的运行结果的数据类型是相同或可以自动转换成相同的
//double max = a > 10 ? a : c;
System.out.println(a > b ? a : b);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通