今日重点:运算符 数据类型 命名规则
知识点掌握情况:理解
学习心得:今天学的东西相对于我来说比较容易接受,以后的日子里保持这种状态 加油!!
1. Java引导
1.1 计算机
- 软件:看不见摸不着
- 硬件:看得见摸着着
1.2 内存:
物理内存:代码和数据运行的窗口
虚拟内存:系统需要从硬盘中虚拟的划出一部分储存空间
1.3 操作系统
会一些基本的指令
(1)打开指令控制面板win+r
(2)输入盘符f: 直接切换到目标的盘
(3)cd.. 返回上一级目录
(4)进入指定的目录 cd a
(5)dir指令查看当前目录下得文件夹信息
(6)创建一个空文件 copy nul 文件名
(7)向文件内写入内容echo 内容>文件名
(8)复制文件 copy 被复制的文件 新文件
(9)删除文件 del 文件名 不走回车站
1.4 二进制
存储单位:
- 1bit = 一位
- 1byte = 8bit
- 1kb = 1024b
- 1mk = 1024k
- 1gb = 1024m
二进制的计算:
十进制是逢十进一,二进制是逢二进一。十进制的最大数为9,二进制的最大数为1
2. java概述
2.1 Java语言:半解释半编译
- 解释:语言、JS 浏览器可以直接运行JS,不需要翻译
- 编译:Java、Scala。java文件是10进制的,计算机只认识2进制。需要一个翻译把java文件翻译给计算机
2.2 java的三个版本
javaSE:做桌面应用程序
javaEE:企业级应用
javaME:手机端(淘汰)
2.3 java的特点
- 面向对象
- 跨平台 平台就是操作系统 java写的软件可以在任意操作系统上运行
- 简单性
- 解释执行计算机执行的.class文件,解释执行.class文件
- 多线程,多个任务同时进行
- 分布式
- 健壮性 强数据类型的语言、异常处理、垃圾回收机制
- 安全性 通过插件设置一个安全防范机制
JDK Java Development Kit 开发工具包
JRE Java Runtime Enviroment java运行环境
JVM Java Virtual Machine java虚拟机
3. 第一个Java程序
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld"); //打印输出
}
}
4.书写规则
- Java是严格区分大小写
- 写代码的时候,一行代码要么用;结束,要么写{}
- 所有的符号都是英文状态下的
- 代码提示,一定要要注意看代码提示。如果你写的东西没有提示,多半是错的
- idea有报错功能
什么是类?
类:是Java开发中的一个最小的单位,一个Java开发的项目是由一堆的类组成的
5. Java基础
5.1标识符的命名规则
在开发中,只要是可以命名的东西就是标识符
只能由字母、数字、下划线、$美元符号组成;数字不能开头。不建议使用$号,下划线尽量不要开头,推荐使用英文字母和数字,大部分都是使用英文单词
5.2 Java的注释
单行注释 //
public class ch20220713 {
public static void main(String[] args) {
//这是一个单行注释
System.out.println("HelloWorld");
}
}
多行注释 /* */
public class ch20220713 {
public static void main(String[] args) {
/*
这是一个多行注释
* */
System.out.println("HelloWorld");
}
}
文档注释 /** */
public class ch20220713 {
public static void main(String[] args) {
/**
* @author l
* @version 1.0
* 这是一个文档注释
* 是用来生成帮助文档的
* 文档注释,是一种特殊的多行注释
*/
System.out.println("HelloWorld");
}
}
三种注释都可以调试代码
5.3 关键字
- 在idea里蓝色的字都是关键字
- 官方解释:这个字有它独一无二的作业
- 关键字不能用来命名
- 关键字都是小写的
- 关键字有50个,其中有两个保留字:goto、const
5.4 数据类型
1. 基本数据类型:
整型 | 占用字节空间大小 | 取值范围 | 默认值 |
---|---|---|---|
byte:字节型 | 1字节 | -128~127 | 0 |
short:短整型 | 2字节 | -215~215-1 | 0 |
int:整型 | 4字节 | -231~231-1 | 0 |
long:长整型 | 8字节 | -263~253-1 | 0L |
浮点型 | 占用字节空间大小 | 取值范围 | 默认值 |
---|---|---|---|
float | 4字节 | 10^38 | 0.0F |
double | 8字节 | 10^308 | 0.0 |
字符型 | 占用字节空间大小 | 取值范围 | 默认值 |
---|---|---|---|
char:字符型 | 2字节 | 0 ~ 65535 | ‘\u0’ |
布尔型 | 占用字节空间大小 | 取值范围 | 默认值 |
---|---|---|---|
boolean | 视情况而定 | true、false | false |
//字节符
byte v1 =127;
//短整型
short v2 = 20;
//整型
int v3 = 3000000;
//长整型
//使用长整型需要在值的后面加上L或l
long v4 = 1000000000000L;
//单精度浮点型
//使用浮点型需要在值的后面加上F或f
float v5 = 32423432344F;
//双精度浮点型
double v6 = 4324434;
//字符型
//字符型需要加单引号,并且引号中只能放一个
char v7 = '你';
//布尔型
boolean v8 = true;
boolean v9 = false;
2. 引用数据类型
引用数据类型是建立在八大基本数据类型基础之上,包括数组、接口、类。引用数据类型是由用户自定义,用来限制其他数据类型。简单的说,除八大基本类型之外的所有数据类型,都为引用数据类型。
所有引用类型的默认值都为 null 。
5.4.1 基本数据类型的转换
转化从低级到高级:byte,short,char(三者同级)—> int —> long—> float —> double
- 自动类型转换 低精度—>高精度
- 强制类型转换 高精度—>低精度
public class ch02 {
public static void main(String[] args){
int a = 10;
int b = 20;
double c = 15.0;
System.out.println(b+c); //int类型自动转换成double类型计算
System.out.println((double)a/b);//通过强转把int类型变成double类型
}
}
注意事项
- 强制类型转换过程中可能造成数据丢失
- 强制类型转换时要在需要转换的数据类型前加上 ()
5.4.2 精度
整型:4中整数类型,精度是和位数挂钩的,位数越大,精度越大
浮点型:double的精度比float高
浮点型精度 > 整型精度
低精度和高精度做运算,得到的是高精度的数据类型的结果
5.5 变量
定义变量时为了后期的维护,变量最好能重复利用从而减少使用字面量
变量的值通过等号赋值,把等号右边的值通过等号赋值给变量
public class ch02 {
public static void main(String[] args){
int a = 10;
System.out.println(a);
}
}
5.5.1 变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
如果在程序中看见了一个整数(小数)的字面量,没有任何数据类型声明的话,默认是int(double)
两个整数做运算结果一定是整数
5.6运算符
5.6.1四则运算
public class ch02 {
public static void main(String[] args){
int a = 20;
int b = 10;
System.out.println(a+b);//30
System.out.println(a-b);//10
System.out.println(a*b);//200
System.out.println(a/b);//2
System.out.println(a%b);//0
}
}
注意:
- 整数相除时,得到的还是整数,而且会向下取整
- 要出现小数点,那就转成double类型或者在最好*1.0
- 除法和取模运算时,右操作数不能为0,否则会报出异常
5.6.2 赋值运算符
运算符 | 式子 | 相当于 | 结果 |
---|---|---|---|
+= | a+=3 | 相当于 | a=a+3 |
-= | a-=3 | 相当于 | a=a-3 |
*= | a*=3 | 相当于 | a=a*3 |
/= | a/=3 | 相当于 | a=a/3 |
%= | a%=3 | 相当于 | a=a%3 |
赋值运算符可以进行数据类型的转换
5.6.3 自增自减运算符
无论a++还是++a,它的本意是让a自增1
public class ch03 {
public static void main(String[] args) {
/*
* a++ 表示先赋值后运算
* ++a 表示先运算后赋值
* */
int a = 1;
a++;
System.out.println(a++); // 注意:后置++是先使用变量原来值,表示式结束时给变量+1,因此输出2
System.out.println(a); // 输出3
++a;
System.out.println(++a); // 注意:前置++是先给变量+1,然后使用变量中的值,因此输出5
System.out.println(a); // 输出5
}
}
5.6.4 比较运算符
运行结果为布尔类型
public class ch20220713 {
public static void main(String[] args) {
//比较运算符
//> < >= <= == !=
int a = 10;
int b = 20;
System.out.println(a>b); //false
System.out.println(a<b);//true
System.out.println(a>=b);//false
System.out.println(a<=b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
}
}
5.6.5 逻辑运算符
public class ch20220713 {
public static void main(String[] args) {
/* 与: 只有当所有条件都为true,整体结果才是true,有一个为false,则整体为false
或: 只有当所有条件都为false,整体结果才是false,有一个为true,则整体为true
非: 结果取反
异或: 有假有真即为真,全真全假即为假
*/
int a = 10;
int b = 20;
System.out.println(a>b && a<b);//false
System.out.println(a>b & a<b);//false
System.out.println(a>b || a<b);//true
System.out.println(a>b | a<b);//true
System.out.println(a>b);//false
System.out.println(!(a>b));//true
System.out.println(a>b ^ a<b);//true
}
}
双与&&: 当发现条件中,只要有一个false,则停止判断(效率高)
与&: 无论有多少个false,程序都会执行后面的表达式
双或||: 当发现条件中,只要有一个true,则停止判断(效率高)
或|: 无论有多少个true,程序都会执行后面的表达式
5.6.6 位运算符
1.与(&)运算符
- 使用规则:两个二进制操作数对应位同为1 结果位 才为1,其余情况为0
2.或(|)运算符
- 使用规则:两个二进制操作数对应位只要有一个为1 结果位 就为1,其余情况为0
3.非(~)运算符
- 使用规则:一个二进制操作数,对应位为0,结果位为1;对应位为1,结果位为0
4.异或(^)运算符
- 使用规则:两个二进制操作数对应位相同为0,不同为1;
5.6.7 三目运算符
public class ch05 {
public static void main(String[] args) {
//三目运算符
//条件结果为true输出结果1,条件结果为false输出结果2
//条件?结果1:结果2
int a = 10;
int b = 20;
System.out.println(a>b?a:b);//20
}
}
5.6.8 存在char类型的运算
public class ch06 {
public static void main(String[] args) {
char a = 'a';
int i = a;
// 每一个字符在计算机保存时都是ASCII码
// char类型是16位,和short一样,可以自动转换为int long float double
// char类型和整数类型转换时,会参考ASCII码进行转换
// 由于char类型有这样的特殊性,开发尽量不使用
System.out.println(i);//97
}
}