今日重点:运算符 数据类型 命名规则
知识点掌握情况:理解
学习心得:今天学的东西相对于我来说比较容易接受,以后的日子里保持这种状态 加油!!

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的特点

  1. 面向对象
  2. 跨平台 平台就是操作系统 java写的软件可以在任意操作系统上运行
  3. 简单性
  4. 解释执行计算机执行的.class文件,解释执行.class文件
  5. 多线程,多个任务同时进行
  6. 分布式
  7. 健壮性 强数据类型的语言、异常处理、垃圾回收机制
  8. 安全性 通过插件设置一个安全防范机制

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.书写规则

  1. Java是严格区分大小写
  2. 写代码的时候,一行代码要么用;结束,要么写{}
  3. 所有的符号都是英文状态下的
  4. 代码提示,一定要要注意看代码提示。如果你写的东西没有提示,多半是错的
  5. 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

  1. 自动类型转换 低精度—>高精度
  2. 强制类型转换 高精度—>低精度
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类型
    }
}

注意事项

  1. 强制类型转换过程中可能造成数据丢失
  2. 强制类型转换时要在需要转换的数据类型前加上 ()
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
    }
}
思维导图: