![](https://img-blog.csdnimg.cn/abcca83e849d47b593d94d75e9fd87f6.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java入门学习笔记
文章平均质量分 63
零基础学习Java
Jine_shunhua
本人正在不断学习中,学到一个新知识点会不断补充文章,所以发布的文章偏碎片化。文章若有问题或错误,希望能指正。
展开
-
Java入门(前提)——集成开发环境IDE
集成开发环境讲究一站式开发,使用这个工具即可。有提示功能,有自动纠错功能。- 集成开发环境可以让软件开发变的更简单、更高效。- 不需要独立安装JDK【IDE中已经集成】- 不需要手动配置环境变量- 不需要使用javac命令对java源文件进行编译- 并且iava源程序编写语法错误马上又提示- 使用IDB工具有很多代码不需要写,自动生成了。原创 2023-12-18 13:57:19 · 967 阅读 · 0 评论 -
Java入门(十九)——访问控制权限与覆盖
使用对象:当前父类中的方法已经无法满足当前子类的业务需求,子类有比要将父类中继承过来的方法进行重新编写,- public 表示公开的,在任何位置都可以访问。- 方法重写的时候:返回值类型相同,方法名相同,形参列表相同。- 方法重写的时候:访问权限不能更低,可以更高。- 方法重写的时候:抛出异常不能更多,可以更少。- 建议粘贴复制,避免出错.如果不一样则视作新的方法。- 私有方法不能继承,所以不能覆盖。- 构造方法不能继承,所以不能覆盖。- 覆盖只针对方法,不谈属性。原创 2023-12-18 13:58:53 · 379 阅读 · 0 评论 -
Java入门(十八)——内部类
外部类不可以直接访问内部类的成员,必须先创建一个内部类对象,使用对象名来访问内部类成员。- 非静态成员内部类可以有自己的成员变量,构造方法,成员函数。- 静态成员内部类的方法中可以通过外部类的类名直接调用外部类的静态成员,也可通过对象名来调用。- 外部类的静态方法不可以访问非静态内部类,包括不能创建内部类的实例,也就不能访问内部类的成员方法,成员变量。- 在非静态成员内部类的方法中可以直接访问外部类的成员:成员变量,成员方法,构造方法。- 静态成员内部类像其他的静态成员一样,是属于类的。原创 2023-12-18 13:58:27 · 329 阅读 · 0 评论 -
Java入门(十五)——抽象类
修饰符列表] abstract class 类名{类体;- 抽象类是无法实例化的,无法创建对象,所以抽象类是用来被子类继承的- final【不可变的】和abstract【抽象的】不能联合使用,这两个关键字是对立的- 抽象类的子类可以是抽象类- 有构造方法,供子类使用。原创 2023-12-18 13:56:35 · 349 阅读 · 0 评论 -
Java入门(十七)——接口
接口也是“引用数据类型”,编译之后也是一个class字节码文件- 接口是完全抽象的(抽象类是半抽象)* 定义:[修饰符列表] interface 接口名{- 支持多继承- 接口只包含两部分:常量、抽象方法- 所有元素都是public修饰的- 抽象方法定义时,public abstract修饰符可以省略- 常量的public static final可以省略。原创 2023-12-18 13:58:01 · 335 阅读 · 0 评论 -
Java入门(十六)——final
含义:- 是一个关键字,表示最终的,不可变的- 所修饰的类无法被继承- 所修饰的方法无法被覆盖- 所修饰的变量一旦赋值之后,不可重新赋值- 所修饰的实例变量,必须手动赋值,不能采用系统默认值- 所修饰的引用,一旦指向某个对象之后,不能再指向其他对象,那么被指向的对象无法被垃圾回收(但是所指向的对象内部的内存时可以被修改的)- 所修饰的实例变量,一般和static联合使用,称为常数,不能在方法中声明。原创 2023-12-18 13:57:40 · 294 阅读 · 0 评论 -
Java入门(十五)——static
语法格式:static{java语句;- 静态代码块在类加载是执行,并且值执行一次。不需要在主方法中调用。- 可以在一个类中编写多个,并且遵循自上而下的孙旭依次执行* 作用:- 与具体需求有关。e.g:项目中要求在类加载的时刻/时机执行代码完成日志的记录。- 是Java为程序员准备一个特殊的时刻,称为:类加载时刻。- 通常在静态代码块当中完成预备工作,先完成数据的准备工具。e.g:初始化连接池,解析XML配置文件……原创 2023-12-17 16:48:48 · 341 阅读 · 0 评论 -
Java入门(十四)——Object
int hashCode() //获取对象哈希值的一个方法。- protected void finalize() //垃圾回收器负责调用的方法。- protected Object clone() //负责对象克隆的。- 因为object类中equal方法当中,默认采用的是“==”判断是否相等,- 只有一个方法体,里面没有代码,是protected修饰的。- 建议所有的子类都去重写toString()方法。原创 2023-12-17 16:44:51 · 356 阅读 · 0 评论 -
Java入门(十三)——import与参数传递
Import语句用来完成导入其他类,同一个包不需要导入,不在同一个包下需要手动导入。- 注意:import语句需要编写到package语句之下,class语句之上。- 不需要的情况:不是java.lang包下,并且不在同一个包下。- 主方法创建对象,参数传递实际是java对象的保存地址。- eclipse导入类的快捷键:ctrl+shift+c。- 主方法创建变量,参数传递本质是变量中保存的具体值。- import 包名.*;- import 类名;原创 2023-12-17 16:40:15 · 453 阅读 · 0 评论 -
Java入门(十二)——多态
对象编程的核心:定义好类,然后将类实例化为对象,给一个环境驱使一下,让各个对象之间协作形成一个系统。- false :表示这个引用指向的对象不是一个Animal类型。【无论是向上转换还是向下转换,两种类型之间必须要有继续关系,否则无法提供】- true :表示这个引用指向的对象是一个Animal类型。- 建议在强制转换之前,使用instanceof运算符进行判断,避免异常发生。- 减低出现的耦合度,提高程序的扩展力。- 子类型 ——> 父类型。- 父类型 ——> 子类型。- 父类型引用指向子类型对象。原创 2023-12-17 16:31:31 · 374 阅读 · 0 评论 -
Java入门(十一)——继承
作用:代码复用,有了继承才有以后“方法的覆盖”“多态机制”* 语法格式:[修饰符列表] class 类名 extends 父亲名{类体 = 属性 + 方法- Java语言中的继承只支持单继承【一个类不能同时继承很多类】* 术语:【B类继承A类】- A类被称为:父类、基类、超类、superclass- B类被称为:子类、派生类、subclass* 子类可以继承父类的哪些数据和不可继承的数据:- 私有的不支持继承- 构造方法不支持继承- 其他数据都可以继承。原创 2023-12-17 16:28:55 · 363 阅读 · 0 评论 -
Java入门(十)——封装
所以属性私有化,使用private关键字进行修饰,private表示私有的,修饰的所有数据只能在本类中访问。- 封装之后,引用的时候只能使用所提供的入口,不能更改访问里面的内容,具有更高的安全性。- 对外提供简单的入口,可使外部进行访问。- 封装之后的程序可以重复使用,且适应性比较强,在任何场合都可以使用。- 没有static的调用方法为:引用.方法名(实参)- 有static的调用方法为:类名.方法名(实参)- 封装之后才会形成真正的“对象”,真正的独立体。- 使用简单的操作入口,是非常便捷的。原创 2023-12-17 16:27:09 · 351 阅读 · 0 评论 -
Java入门(九)——OO(面对对象)
语法结构:[修饰符列表] class 类名 {属性;//描述对象的状态信息方法;//描述对象的动作信息- 当状态和动作具体到某一个对象之后,可能存在数据差异- 所有访问实例相关的数据,都需要通过“引用.”的方式访问,因为只有通过引用才能找到对象- 只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。原创 2023-12-17 16:23:44 · 378 阅读 · 0 评论 -
Java入门(八)——关键字this和super
如果构造方法都没有出现this()和super(),那么便默认有一个super();来继承父类的无参数构造方法- 由于this()和super()都只能出现再构造方法的第一条语句,所以两者不能同时在一个构造方法中出现- 无论怎么调用,父类的构造方法都会使用。原创 2023-12-17 16:17:27 · 435 阅读 · 0 评论 -
Java入门(七)——构造方法
当一个类没有定义任何构造方法的话,系统会默认提供一个无参数的构造方法,即缺省构造器。- 如果有定义构造方法那么便不提供缺省构造器。[修饰符列表] 返回值类型 方法名 (形式参数列表) {[修饰符列表] 构造方法名 (形式参数列表) {- 构造方法执行结束后都有返回值,但是不需要写“return 值”- “返回值类型”不能添加,默认返回值的类型为自己本身。- 作用:通过构造方法的调用,可以创建对象。- 调用:new 构造方法名(实参列表)- 构造方法的方法名必须和类名保持一致。- 构造方法支持重载机制。原创 2023-12-17 16:09:23 · 347 阅读 · 0 评论 -
Java入门(六)——数组
二分法查找(在已排列好的数组中,将数据对半分,直到找到想要找到的值为中间值)- 选择排序算法(先找出最小的,比较前一位的值,从小到大依次排列)- 在数组上随机删除或者增加元素,效率低,会涉及后面元素统一向前或者向后位移的操作。- 数组一旦建立,长度不可变,类型固定统一,元素内存地址连续,占用空间大小一样。- 扩容:将内容拷贝到另一个新建的大数组中,对象的拷贝实际是对象地址的拷贝。- 数组对象是堆内存当中,若是存储“java对象”,实际是对象的引用。- 自带length属性,获取数组中的长度。原创 2023-12-17 12:03:20 · 347 阅读 · 0 评论 -
Java入门(五)——控制语句
当然byte,short,char也可以直接写道=到switch和case后面,因为他们可以进行自动类型转换成int类型。- 执行原理:switch后面小括号当中的"数据"和后面的"数据"进行一一匹配,匹配成功的分支执行。- JDK6的,switch和case后面只能探测int类型。- 初始化表达式、布尔表达式、更新表达式,不是一定需要,但是两个";- 所有分支都没有匹配成功的话,当有default语句,会执行default中的程序。- 执行原理:先判断是否是true,是进入循环,不是不进入。原创 2023-12-17 11:56:56 · 732 阅读 · 0 评论 -
Java入门(四)——方法
修饰符列表] 返回值类型 方法名 (形式参数列表){方法体;- 可选项,不是必须的。- 目前统一写成:public static- 方法名的修饰列表中有static关键字的话,调用方法: 类名.方法名(实际参数);- 指完成特定功能之后,需要返回的最终结果,可以是准确的数据,也可以不是。- 返回值类型:指返回一个具体存在的数据的数据类型。任意一种类型都可以- 如果方法结束后需要返回任何数据,则采用"void"关键字。原创 2023-12-17 11:47:15 · 880 阅读 · 0 评论 -
Java入门(三)——运算符
短路与(或)与逻辑与(或)的运算结果是一样的,只不过存在短路现象。- 当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果。- 当布尔表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果。(等同于:i = (byte)(i + 5));- 字符串的连接运算。- 短路现象指的是:当结果可以准确确定时,后面的表达式没有再执行。- 逻辑运算符要求两边的算子都是布尔型,并且结果也是布尔型。-先执行等号右边的表达式,将执行结果赋值给左边的变量。原创 2023-12-17 11:37:05 · 306 阅读 · 0 评论 -
Java入门(一)——基础语法
(如果是主要编程Java系列的建议用IDEA、Eclipse,如果多种代码都有学习编程的话,可以选VS Code)每一个class当中都可以编写main方法,都可以设定程序的入口,想执行B.class中的main方法:java B。输入方法:java.util.Scanner s = new java.util.Scanner(System.in);,代表只能在该方法中使用,其他方法不知道这个变量,同时其他方法也可以用相同名字的局部变量名。在具体方法中声明则是。:指的是该该文件在Java项目中的逻辑地址。原创 2023-12-17 11:27:58 · 791 阅读 · 0 评论 -
Java入门(二)——数据类型
Java程序中程序员有权力直接命名的单词,通常为黑色字体(但是不是所有的黑色字体都是标识符)标识符可以标识的元素:类名、方法名、变量名、接口名、常量名。原创 2023-12-17 11:25:50 · 882 阅读 · 0 评论