![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA学习日志
文章平均质量分 54
JAVA基础的学习阶段
卓越小Y
妄图学java做到无所不能!
展开
-
day31JAVA的异常机制Error 跟 Exception
java异常机制exception 异常 报错三种类型的异常检查性异常:用户错误输入,或者找不到路径就会出现异常运行时异常:只有在运行时才会出现的错误。错误(比较严重):错误不是异常,而是脱离程序员的控制,错误在代码中通常被忽略。例如栈溢出,一个错误就发生了,在编译的时候检查不到。异常机构Java.lang.Throwable作为所有异常的超类。在JAVA API定义了很多种异常,分两大类,错误Error(不可预料) 和 异常Exception(可以预料的)。Error(错误)Err原创 2022-03-23 07:56:58 · 338 阅读 · 0 评论 -
day30 接口本质 接口和普通类的区别 interface关键字 implements接入 抽象类跟接口的总结
接口接口跟普通类的区别:普通类:只有具体实现抽象类:具体实现跟规范(抽象方法)都有接口:只有规范(抽象方法),专业的interface关键字interface 声明接口class 声明类implements 接入接口( vt. 执行,履行;贯彻,落实;使生效 )[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iuVPQC2v-1646795967190)(接口.png)]接口注意事项:接口中只有抽象方法。接口中定义的属性都是常量。(一般不那么原创 2022-03-09 11:21:34 · 173 阅读 · 0 评论 -
day29 abstract 抽象类 抽象类的注意点 抽象类俗解 跟接口区别
abstract 抽象类加abstact修饰符就会变成抽象类,抽象类里所有方法都隐形被public static修饰。可写可不写。相当于自己定义方法名,继承的子类(子类为抽象类除外)去实现。(跟接口相似概念)抽象类的注意点:抽象类可以不存在方法,但抽象方法存在的类一定是抽象类。抽象类不能被new实例,只有被继承(毕竟自己有可能没有方法体)如果抽象类中存在抽象方法,那继承他的子类就必须重写该抽象方法除了特殊继承他的子类也是 抽象类。不然就必须实现重写父类的抽象方法。抽象类中的方法,可以只有原创 2022-03-09 10:19:40 · 63 阅读 · 0 评论 -
day28 static关键字详解 static在代码中的顺序
static关键字static的优先级:随着类的加载一起存在。static的优势:可以直接用不通过new,也可以直接通过类调用static的缺点:不可以被方法重写。static在代码中的顺序static修饰的代码块{},在构造器之前就执行,但只运行加载类的时候那一次。(毕竟static修饰是随着类一起被加载的。)匿名代码块,在构造器之前就执行,可以随着程序正常运行。(一般用来赋初始值)(代码运行就运行)构造器。静态引入方法...原创 2022-03-09 10:18:35 · 127 阅读 · 0 评论 -
day27 instanceof关键字的本质 特性 instanceof注意点 引用类型的互转 引用类型互转的好处
instanceof关键字instancerof本质就是判断两个类之间是否有联系,有联系为true 没有为fasleinstanceof 的特性图解判断两种类型之间是否有继承关系:instanceof的注意点图解同等级类型不能判断,会报错。例如Object > Father > SonObject>String>…Father 跟 String 就不能判断。会报错类型互转:类型互转的方法和缺点:高转低需要强制转换。((Son)grandpa).run()原创 2022-03-08 00:51:00 · 66 阅读 · 0 评论 -
day26 多态 多态的本质 多态的特性 多态注意点 涉及多态方法重写的注意点
多态一个对象的实际类型是确定的父类引用指向子类类型。但指向的引用类型可以是可变的。(就是不一定需要该类型就用该引用)Father baba(父类的引用) =new Son()(子类类型);;//也可以是这样子多态的表现图解:对象能使用哪些方法,都跟右边的关系不大。(左边)Father baba =new Son()(右边);多态特性图解例如 Father只有say()方法。Son还有一个run()方法。Father baba就只能用say()方法。没有run()方法。解决方法:原创 2022-03-07 01:23:00 · 122 阅读 · 0 评论 -
day25 方法重写 静态方法的调用 父类的引用 方法重写的注意点 方法重写快捷键 方法重写的本质
继承的方法重写重写都是方法重写,跟属性不相干。重写必须是非静态方法(没有static修饰)。静态方法的调用(不可以被重写)static修饰的静态方法是随着类加载同时加载,所以不能被重写。非静态方法是随着实例化才被加载,所以可以被重写。正常情况图解:谁的类用谁的方法。调换情况图解:(虽然可以这么做,但是还是按正常操作好了。)父类可以引用子类(继承了父类)指向。但是子类无法引用父类(没有继承子类)指向。(你继承了父类,所以子类包含类父类,所以父类可以引用子类导向他自己。但父类里面没有你原创 2022-03-07 00:27:33 · 160 阅读 · 0 评论 -
day24 继承的本质 继承注意点 super跟this的区别和图解 继承构造器的区别 不同修饰符的排序
继承概述JAVA中类只有单继承,没有多继承(就是只能继承一个父类)(继承财产相当于继承一个爸爸的)继承的本质是对某一批类的抽象。继承的好处:对于功能相似的类代码。可以通过继承,来减少重写代码的工作量继承后可以通过重写方法,来变成适合的使用的类。(跟第3点是一样的)继承后更方便我们延展代码,方便扩展和维护。关键字 extendsextend的意思是“扩展”,子类是父类的扩展继承的注意点:儿子只能继承(extends)一个父亲(父类)的财产需要注意修饰符的引用,和该类的位置。才可原创 2022-03-06 22:52:53 · 130 阅读 · 0 评论 -
day23 封装的本质 私有定义 private修饰符应用 get/set的接口应用
封装数据的隐藏:封装的本质应该禁止直接访问一个对象中数据的实际表示,而应该通过操作借口来访问,这称为信息隐藏。属性私有,使用get/set作为借口private 修饰符private:(关键字)私有的定义一个私有变量。不能被其他文档引用。定义属性:private 类型 属性 =属性值类的代码:package com.ckw.oop.demo03;public class Student { private int age; private String name;原创 2022-03-05 14:05:49 · 214 阅读 · 0 评论 -
day22 类与对象的小结 类与属性的定义方法和调用 基本类型的默认值 方法的定义和调用 类的调用跟方法调用的区别
类与对象的小结:类与属性类是一个模板:抽象。对象是一个具体的实例定义:public class 类名{属性 或者 方法 }定义属性:修饰符 类型 属性 =属性值(不赋值就是初始化值)属性的叫法(1.属性 2.字段Field 3.成员变量)调用:类 对象 = new 类名()调用属性: 对象.属性 = 属性值调用方法:对象.方法()基本类型的默认值整数类型 默认值 = 0浮点数 类型 默认值 =0.0布尔 类型 默认值 = falsechar 类型 默认值 = u0000(u原创 2022-03-05 14:04:09 · 54 阅读 · 0 评论 -
day21 创建对象时的内存分析
创建对象时的内存分析方法运行时就会自己加载含有,static的静态方法。创建对象就会在栈中占领一个位置。对象用new的时候就自身会去堆里占用一个空间。这个空间可以套用类的模板创建,或者直接调用一个方法。当堆的任务完成关闭后,对象就会从栈中走开。当运行到最后main 完结的时候。栈也会关闭。...原创 2022-03-05 00:27:46 · 164 阅读 · 0 评论 -
day20 封装 类和对象的创建 面向对象的本质 构造器是什么 构造器的注意点和特殊情况 this关键字
类和对象的创建、类的特性:封装继承多态类是对象的抽象化,对象是类的实例化通俗就是类是一个模板,可以匹配大多数对象的一个模板。类实例化会返回一个自己的对象对象 就是类的具体实例封装:一个项目应该只存在一个main方法其余的都是类一般启动程序用Application(意思:应用程序)独自一个文档,并且创建程序唯一的main方法启动。其他的只是应用的类。也是类的封装。类方法文件:package com.ckw.oop.demo02;public class Stud原创 2022-03-04 22:45:00 · 201 阅读 · 0 评论 -
day19 方法的回顾 如何创建方法 方法的调用 2大特殊情况 值传递 跟引用传递的区别
面向对象编程JAVA的核心思想就是OOPOOP就是面向对象编程OO就是面向对象概述面向过程(线性思维)步骤清晰,适合处理一些较为简单的问题面向对象思想(分类的思维方式)分类的思维,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下细节进行面向过程的思考。面向对象适合处理复杂问题,适合处理需要多人协作的问题。面向对象就是面向过程的抽象。属性+方法=类。初始面向对象编程 Object-Oriented Programming. OOP面向过程的原创 2022-03-03 23:13:19 · 102 阅读 · 0 评论 -
day18 稀疏数组的创建和还原
稀疏数组记录有效值的坐标跟值当一个数组大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组处理方式:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序规模。如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p8BKZLLM-1646094194934)(1645884023838.png)]操作步骤如何压缩成稀疏数组先统计数组中有多少个元素再创建稀疏数组 行 列 值,行原创 2022-03-01 08:23:52 · 64 阅读 · 0 评论 -
day17数组特点 数组边界 数组应用 遍历数组 多维数组创建和遍历 Arrays操作数组 冒泡排序
数组的四个基本特点长度一旦被确定创建,他的大小就是不可以改变的。数组中的元素必须是相同类型,不能使混合型数组类型可以是任何数据类型,包括基本类型和引用类型数组变量属于引用类型,数组也可以看成对象。数组中每个对象i相当于该对象的成员变量。数组本身就是对象,JAVA中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的总结:只要是用new做标示符的,都是存在于堆中。数组边界下下标合法区间:[0,length-1]数组应用遍历数组的两种方式for (int i原创 2022-03-01 08:22:45 · 248 阅读 · 0 评论 -
day16 数组的认识 创建 查询 静态和动态数组数组 数组在内存中的表现
目录数组概述数组声明创建数组使用多维数组Arrays类稀疏数组数组数组定义相同类型数据的有序集合相同类型数据的若干数据,按照先后次序排列组合每个数据称为一个数组元素,每个元素可以通过下标访问他们。数组声明创建数据类型[] 变量 =new 数据类型[元素数] (首选)数据类型 变量[]=new 数据类型[] (选用)public class arraydemo01 { //String[] args 就是一个可传参数的字符串的数组。 public sta原创 2022-03-01 08:19:12 · 61 阅读 · 0 评论 -
day15 命令行传参数 可变参数 递归 计算器练习
命令行传参数如何传递参数给main方法实现package com.ckw.blog.base;public class demo { public static void main(String[] args) { //args.length 数组长度 for (int i = 0; i < args.length; i++) { System.out.println(args[i]); }}}cmd命原创 2022-02-19 01:13:58 · 304 阅读 · 0 评论 -
day14 方法原则 方法命名 方法组成 方法重载
目录何为方法方法定义和调用方法重载命令行传参可变参数递归什么是方法?方法是解决一类问题的步骤的有序组合方法包含于类或者对象中方法在程序中被创建,在其他地方被引用用一段用来完成特定功能的代码片段实例package com.ckw.blog.mathod;public class demo01 { //main方法是程序自有执行方法 //public是标示符意思:公用的 static也是标示符意思:静态 void意思是空间 //加stat原创 2022-02-17 09:38:02 · 91 阅读 · 0 评论 -
day13 for循环的应用 练习 区别 遍历 break continue的应用
for循环for(初始化,布尔表达式,更新){代码语句}for(定义变量,布尔表达式,表达式){输出}IDEA快捷方式100.for会自动弹出package com.ckw.blog.select;public class demo_for { public static void main(String[] args) { //初始值//条件判断//迭代 for (int i = 0; i < 100; i++) {原创 2022-02-16 09:14:51 · 89 阅读 · 0 评论 -
day12 控制流程 if switch while do...while 猜数字游戏
控制流程顺序结构所有的程序都是按顺序执行if语句选择结构单选择语句if(a>0){System.out.println(“hello”);}package com.ckw.blog.select;import java.util.Scanner;public class demo01 { public static void main(String[] args) { int score = 0; Scanner scanner = new原创 2022-02-15 11:13:57 · 2237 阅读 · 0 评论 -
day11 java控制流程目录 Scanner类交互输入的使用 运行中出现的bug部分
java控制流程目录用户交互Scanner(扫描)顺序结构选择结构循环结构break 和 continue(继续)练习scanner对象java.util.Scanner 用来获取用户输入Scanner s = new Scanner(System.in);通过Scanner的类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要用hasNext()和hasNextLine()判断是否还有输入的数据。思维流程:创建基本输出类用Scanner类实例化一原创 2022-02-14 09:24:25 · 192 阅读 · 0 评论 -
day10 javadoc注释 java的三个cmd指令 基础回顾
javadoc注释文档javadoc命令式用来生成自己的API文档的参数信息@author 作者名 *@version 版本号*@since 指明需要最早使用的JDK版本@param 参数名@return 返回值情况@thorw 异常抛出情况一般只需要会写作者名跟版本号就好了。package com.ckw.blog.base;/** * @author :ckk * @version 版本 * @since 指明需要最早使用的JDK版本 * @原创 2022-02-14 09:15:32 · 63 阅读 · 0 评论 -
day09 如何创建包 导入包 包的命名规范 阿里巴巴开发手册
包机制为了更好的组织类,java提供包机制,用于区别类名的命名空间毕竟同一个文件内,同一个名字在同一个文件内不能重复package pkg1[.pkg2[.pkg3]]引入包 importimport pkg1.dir.pkg2.*包机制的命名一般以公司域名倒序做为包名例如:www.baidu.com包名:com.baidu.wwwidea环境中,需要点齿轮Tree App里面取消 compact Middle Packages兴建包package com.ckw.blog.ba原创 2022-02-12 23:39:14 · 288 阅读 · 0 评论 -
day08 三元运算符 扩展运算符 字符连接符 符号优先级
三元运算符(条件运算符)x ? y : z (由于是三个因素,俗称三元)如果x ==turn ,结果为y,否则为z条件?turn输出:false输出(相当于if语句)package operator;public class demo06Day07 { public static void main(String[] args) { int a = 59; //boolean b=true; String c= a>60?"及格":"原创 2022-02-12 12:48:58 · 191 阅读 · 0 评论 -
day07 数学运算符的类型自动转换 关系运算符 位运算符 相亲Math
运算符的理解运算符算数运算符:/%(取余数)模运算++–public class demo01{ public static void main(String[] args){ int a =10; byte b =20; System.out.println(a+b); //结果类型为int //只要整数加减乘除,如果没有long的类型,默认会统一转换为int类型原创 2022-02-11 01:21:42 · 274 阅读 · 0 评论 -
day06 类变量 实例变量 局部变量 常量 变量的命名规范
变量变量时程序中最基本的存储单元,其要素包括:变量名变量类型作用域声明变量的注意点:必须声明变量类型,可以是基本类型,也可以是引用类型必须有变量名,变量名的标示符必须合法,$ _ 大小写字母开头。不能包含关键字。声明的变量必须有值。变量声明是完整的语句,所以每一个声明都需要;结尾同个函数内,变量名是唯一的。public class demo{ public static void main(String[] args){ byte a1 =1原创 2022-02-10 19:24:51 · 331 阅读 · 0 评论 -
day05 java数据类型的转换
数据类型 续集public class demo01{ public static void main(String[] args){ char a ='a' // System.out.println((int)a) //强制转换,因为int的优先级比char高 }}类型的层级byte-short-char-int-long-float-doublebyteshortchar(虽然是字符,但也是可以根据unicode表当数字来进行运算的原创 2022-02-10 19:19:22 · 46 阅读 · 0 评论 -
day04 java数据类型的扩展
数据类型强类型语言所有的变量都是必须严格符合规定,所有的变量必须先定义后才可以使用整数扩展:public class Demo{ public static void main(String[] args){ //整数拓展 进制 二进制 八进制 十进制 十六进制 int a0 = 0b; //二进制 int a1 = 10; //十进制平时都是十进制 10 int a2 = 010; //八进制0 8 int a3 = 0x10; //十六进制0x 0-9 A-F原创 2022-02-10 19:18:02 · 60 阅读 · 0 评论 -
day03 java的八大数据类型
数据类型两大数据类型基本数据类型(8种基本数据类型)primitive(p ri mi tive)原始的引用数据类型(类,接口,数组)reference(re fe ren ce)参考的8种基本数据类型intshortlongbytefloatdoublecharboolean数据类型的内存大小跟取值数据类型取值大小注意byte整数-128到1271最大取值127short整数-32768到327672int整数-原创 2022-02-10 19:16:36 · 48 阅读 · 0 评论 -
day02 为啥学JAVA 常用DOS命令JAVA的历史 JAVA环境配置 IDEA下载 基本类型的大小
回忆复习,免得浪费了。经过几天的反复思考,觉得还是python学起来用就好了。等有时间再学习javajava体系比较大,对于一个30多岁没有多少时间的人来说,学完也没啥用。只是了解了编程语言而已。还是把之前花了几个月熟悉的python练习下,尽量熟练掌握自动化的一些技巧。还有可视化的方向。尽量体系化得把python学习起来。但是,没有找到相关性连续的课程。还是按狂神说JAVA一直看下去好了。常用DOS命令操作系统键 + R在文件夹内,按住shift+鼠标右键启动shell(是一样的)文件原创 2022-02-10 19:15:24 · 391 阅读 · 0 评论 -
day01 markdown日志入门小知识
markdown 语法标题#+标题 一级##+标题 二级###+标题 三级…#######+标题 六级# 标题## 标题### 标题#### 标题#### 标题##### 标题###### 标题 #最高6级字体我是斜体我是黑体我是斜黑体我是删除线*我是斜体* #一个星号**我是黑体** #多一对星号***我是斜黑体*** #三对星号就 又斜又黑了~~我是删除线~~ #两个波浪线就是删除线图片 与 链接![截图](D:\图片\手原创 2022-02-10 18:50:46 · 251 阅读 · 0 评论