跟狂神学Java

跟狂神学Java


关于Typora使用方法

#+空格+内容 一级标题

##+空格+内容 二级标题(以此类推)

+内容+ 加粗

内容 斜体

内容 斜体加粗

内容 删除线

引用

—分割线

***分割线

![名字](路径) 图片

[名字](地址) 超链接

1.+空格 有序列表

-+空格 无序列表

···(tab键上的点)Java(表示代码)


windows快捷键

shift + win 图标(右键)可以打开powershell


常用的Dos命令

#查看当前目录下所有文件 dir
#切换目录 cd (change directory)
返回上级 cd..
#清理屏幕 cls  (clean screen)
#退出终端 exit
#查看电脑ip ipconfig
​
#打开应用
  cals  计算器
  mspaint 画图
  notepad 记事本
#ping命令
    ping www.baidu.com
#文件操作
    md 目录名 创建
    rd 目录名 删除
    cd> 文件名 创建文件
    del 文件名 删除文件
#cmd+空格+当前路径    进入当前路径下的命令窗口

Java入门

三高:高可用、高性能、高并发

jdk:Java开发者工具(包含jre)

jre:Java运行时环境

jvm:Java虚拟机

正在上传…重新上传取消正在上传…重新上传取消

卸载JDK

  1. 删除Java的安装目录

  2. 删除环境变量里面的JAVA_HOME

  3. 删除path下关于Java的目录

  4. Java-version 查看是否卸载

    安装JDK

    1. 百度搜索JDK8,找到下载地址

    2. 同意协议并下载电脑对应版本

    3. 双击安装JDK

    4. 配置环境变量

      1. 我的电脑–>右键–>属性

      2. 环境变量–>系统变量–>JAVA_HOME(路径是刚刚安装JDK的路径)

      3. 配置path变量:打开path,添加%JAVA_HOME%\bin(%000%表示引用000的路径)再添加%JAVA_HOME%\jre\bin(此目录对应jre的真实目录)

    5. 测试JDK是否安装成功

      1. 打开cmd

      2. 输入Java -version

关于Java的基本知识

  1. bin里面放的是Java的可执行文件

  2. include 引入的c语言的头文件

  3. jre可以运行一个Java文件

  4. lib放的Java的库文件(一般用不到)

  5. //单行注释

  6. /* */多行注释

  7. 文档注释/** */

  8. java 是一种强类型语言,所有变量要先定义后才能使用

  9. 字节

    • 位(bit):是计算机内部最小的存储单位,11001100是一个八位二进制数

    • (Byte)是计算机中数据处理的基本单位,1字节=8位

    • 电脑中的32位和64位区别:32位只能装32位的cpu,最大内存为4GB;64位既可以装32位也可以装64位,64位支持128内存

    • 转换关系1B(Byte)=8b(bit),1024B=1KB,1024KB=1M,1024M=1G

  10. 最好完全避免使用浮点数进行比较

  11. 一般利用公司域名倒置作为包名

  12. 引用别的包需要导入包import 包名.类名 例:import Java.nice *;(此处的星号表示引用该包的所有类)

基本数据类型

  1. 整数类型

    int 四个字节 -21亿—-21亿 最常用

    byte 一个字节 -128—–127

    long 八个字节 后面要加L(例:long a=30L)

    short 两个字节

  2. 浮点型

    float 四个字节 后面要加f(例:float a=50.1F)

    double 八个字节

  3. boolean类型:占一位其值只有truefalse两个

  4. 字符类型:char占两个字节

数据类型转换

由低到高(容量由低到高可以转换),小数的优先级大于整数。

低=======================》高

byte,short,char->int->long->float->double

由高到低需要强制类型转换,由低到高自动类型转换

JDK7新特性:可以用下划线分割数字

public class demo2 {
    public static void main(String[] args) {
        int a =10_0000_0000;
        System.out.println(a);
    }
}

正在上传…重新上传取消正在上传…重新上传取消

*注意

  1. 不能对布尔类型进行转换

  2. 不能把对象类型转换成不相干的类型

  3. 在把高容量转换成低容量的时候,强制转换

  4. 转换的时候可能存在内存溢出,或者精度问题

引用数据类型

  1. 接口

  2. 数组

变量和常量

type varNme = value
//数据类型  变量名 = 值

注意

  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型

  2. 变量名必须是合法标识符

  3. 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

public class Demo3 {
    //属性:变量
    //类变量:static
    //实例变量,从属于对象;如果不自行初始化,这个类型默认值为 0  0.0
    //布尔值:默认是false
    //除了基本类型,其余默认值都是null
    int age;
    String name;
    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明数据类型和初始化值
        int a = 10;
        System.out.println(a);
​
        //变量类型   变量名字 = new Demo3()
        Demo3 demo3 = new Demo3();
        System.out.println(demo3.age);
        System.out.println(demo3.name);
    }
}

变量的命名规范

  1. 类成员变量:首字母小写和驼峰原则:monthSalary

  2. 局部变量:首字母小写和驼峰原则

  3. 常量:大写字母和下划线:MAX_VALUE

  4. 类名:首字母大写和驼峰原则:Man,GoodMan

  5. 方法名:首字母小写和驼峰原则:run(),runRun()

运算符

  • 算术运算符:+,-,*,/,%,++,–

  • 赋值运算符:=

  • 关系运算符:>,<.>=,<=,==,!=instanceof

  • 逻辑运算符:&&,||,!

  • 位运算符:&,|,^,~,>>,<<,>>>

  • 条件运算符: ?:

  • 扩展赋值运算符:+=,-=,*=,/=

    逻辑运算符

    int a = 3;
    int b = a++;//b=3,a++表示a先将值赋给b然后自增
    int c = ++a;//c=5,++a表示a先自增再将值赋给c

    a&&b:逻辑与运算:两个变量都为真,结果才为true,若第一个变量为假,则会发生短路,不再执行后面代码

    a||b:逻辑或运算:两个变量有一个为真,结果才为true

    !(a&&b):如果是真,则变为假,如果是假则变为真

    //短路运算
            int c = 5;
            boolean d = (c<4)&&(c++<4);
            System.out.println(d);
            System.out.println(c);//d为false,c为5

    位运算符

     /*
            A = 0011 1100
            B = 0000 1101
            ----------------
            A&B=0000 1100   全1为1,其余为0
            A|B=0011 1101   全0为0,其余为1
            A^B=0011 0001   相同为0,不同为1
            ~B =1111 0010   与B相反
            */

    三元运算符

    X ? Y :Z,如果X为真(X==true),那么结果为Y,否则结果为Z

Hello,world

  1. 在一个文件夹中新建一个Java文件

    • 后缀名为 .java

    • 比如文件名为Hello.java

  2. 编写代码

    public class Hello{
        public static void main(String[] args){
            System.out.print("Hello,World!");
        }
    }
  3. 编译Javac java文件,会生成一个class文件

  4. 运行class文件

正在上传…重新上传取消正在上传…重新上传取消

注意事项

文件名和类名必须保持一致

IDEA知识

public class Hello {
    /**psvm快捷键
    **/
    public static void main(String[] args) {
        /** 输出快捷键sout**/
        System.out.println("Hello world!");
    }
}
  1. Ctrl + D:复制当前行到下一行

  2. 反编译 java —-class(字节码文件)——反编译(java)

打开IDEA找到项目结构然后找到文件缓存路径,打开后把里面的class文件放入java文件夹下回IDEA点开即可。

正在上传…重新上传取消正在上传…重新上传取消

Scanner对象

  • next():

  1. 一定要读取到有效字符后才可以结束输入

  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

  3. 只有输入有效字符后才将其后面输入的空表作为分隔符或结束符

  4. next()不能得到带有空格的字符串

  • nextLine():

  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符

  2. 可以获得空白

switch选择结构

case具有穿透性,后要加break结束执行;

JDK7新特性,表达式结果可以是字符串!

字符的本质也是数字(详情请看IDEA知识)

while循环和do while 循环

  • 只要表达式为true,循环就会一直执行下去。

  • 需要一个表达式失效的方式来结束循环

  • 对于while来言,如果不满足条件,则不能进入循环。do while不满足条件也执行一次,do while 至少执行一次

  • while是先判断后执行,do while 是先执行后判断

for(初始化;布尔表达式;更新)

方法的定义

Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

  • 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

  • 返回值类型∶方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void。

  • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。

  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何

  • 参数

    • 形式参数:在方法被调用时用于接收外界输入的数据。 修饰符返回值类型方法名(参数类型参数名){

    • 实参:调用方法时实际传给方法的数据。

    • java里都是值传递

  • 方法体:方法体包含具体的语句,定义该方法的功能。

  • 可变参数

在方法声明中,在指定参数类型后加一个省略号

一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明

修饰符 返回值类型 方法名(参数类型 参数名){
    参数体
        return返回值;
}

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。

方法的重载的规则:

  1. 方法名称必须相同。

  2. 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。

  3. 方法的返回类型可以相同也可以不相同。

  4. 仅仅返回类型不同不足以成为方法的重载。

实现理论:

方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。

数组

int[] nums;//数组的定义
        nums=new int[10];//数组的创建
  • 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。

  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型。

  • 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

ArraylndexOutOfBoundsException:数组下标越界异常! 小结: 数组是相同数据类型(数据类型可以为任意类型)的有序集合数组也是对象。数组元素相当于对象的成员变量 数组长度的确定的,不可变的。如果越界报:ArraylndexOutofBounds

Arrays类

  • 数组的工具类java.util.Arrays

  • 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作

  • Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(:不是不能而是不用)

  • 具有以下常用功能

    1. 对数组赋值:通过fill方法
    1. 对数组排序:通过sort方法(升序排序)
    1. 比较数组:通过equals方法比较数组中元素值是否相等
    1. 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作

二维数组可以视作一维数组里面的每个值都变成了一个一维数组

//一维数组初始化
int[] array1={1,2,3,4,5,6};
//二维数组初始化
int[][] array2={{1,2,3},{1,2},{1,2,4,5}};

面向对象

对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是具体到微观操作,仍然需要面向过程的思路去处理。

  • 面向对象的三大特性:封装、继承、多态

  • 面向对象的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据

构造器:和类名相同,没有返回值

作用:new本质在于调用构造方法,初始化对象的值

注意:定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造

快捷键:Alt+Insert

封装

该露的露,该藏的藏

  • 程序设计追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用

  • 封装(数据的隐藏)

通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这成为信息隐藏

  • 属性私有,get/set

继承

super注意点:

  1. super调用父类的构造方法,必须在构造方法的第一个

  2. super必须只能出现在子类的方法或者构造方法中

  3. super和this不能同时调用构造方法

Vs this:

代表的对象不同:

this:本身调用这个对象

super:代表父类对象的应用

前提

this:没有继承也可以使用

super:只能在继承条件才可以使用

构造方法

this();本类的构造

super():父类的构造

重写:需要有继承关系,子类重写父类的方法!

  1. 方法名必须相同

  2. 参数列表必须相同

  3. 修饰符:范围可以扩大但不能缩小:public>Protected>Default>private

  4. 抛出的异常:范围可以被缩小,但不能扩大:ClassNotFoundException——>Exception(大)

重写,子类的方法和父类必要一致;方法体不同(内容不同)!

为什么要重写:

  1. 父类的功能子类不一定需要或者不一定满足Alt + Insert :override;

Ctrl+h 继承树,在Java中所有类都直接或间接继承Object,Java中只有单继承,没有多继承,即一个儿子只能有一个父亲,一个父亲可以有多个儿子

多态

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式(让程序更灵活)

  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)

  • 多态存在的条件

  1. 有继承关系

  2. 子类重写父类方法

  3. 父类引用指向子类对象

instanceof(类型转换)引用类型,判断一个对象是什么类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 神是Java培训领域中的知名人物,他所开设的Java课程备受关注和好评。在Java学习过程中,配套笔记是至关重要的。神所说的Java配套笔记,就是他自己编写的一份针对Java初学者的笔记。这份笔记内容详实,包括Java基础语法、面向对象编程、数据库操作等多个方面。并且,神还会根据学员的反馈及时修改和完善这份笔记。 Java配套笔记对于Java学习的初学者来说,是一份非常好的辅助资料。通过这份笔记,初学者可以系统地学习Java编程涉及到的各个方面,同时也可以在学习过程中及时记录下重要的知识点,方便日后复习和查询。同时,这份笔记编写者是一位经验丰富的Java教育者,他对Java的理解和知识点的讲解都非常到位和深入浅出。 总之,Java配套笔记是一份非常重要的学习资料,它不仅可以帮助初学者更好地学习Java编程,还可以对Java学习者在日后的实际工作中提供有效的参考和帮助。如果你想学好Java,一份好的Java配套笔记绝对是必不可少的。 ### 回答2: 神说Java配套笔记是非常好的学习资料,对于刚学习Java的初学者来说尤其有用。这些笔记详细介绍了Java编程的一些基础知识,例如数据类型、变量、循环结构、方法等。而随着学习的深入,笔记也逐渐开始讲解Java中的高级特性,例如面向对象编程、异常处理等。 神说Java配套笔记的另一个优点是非常易于理解和学习。这些笔记使用了简单易懂的语言和生动的示例来阐述概念,使得学习者可以快速入门。此外,笔记中还包含了大量的练习题,可以帮助学习者巩固所学知识和加深理解。 除了配合视频课程使用,神说Java配套笔记也可以作为一个独立的学习资料来使用。学习者可以通过自学的方式来学习Java编程,掌握Java编程的基础知识和实践技能。 总之,神说Java配套笔记是一份非常优秀的学习资料,无论是初学者还是有一定Java基础的学习者都可以从中受益。学习者只需要按照笔记的步骤一步一步地学习,就可以轻松掌握Java编程的基础知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值