JAVA学习
Ishaq Li
这个人正在敲代码!!!
展开
-
Java学习Day38之异常
什么是异常 异常指程序运行中出现的不期而至的各种状况,如文件找不到、网络连接失败、非法参数等 异常发生在程序运行期间,它影响了正常的程序执行流程 简单分类 检查性异常 最具代表的检查性异常是用户错误或问题引起的异常。这是程序员无法预见的,例如要打开一个不存在的文件时,一个异常就发生了。这些异常在编译时不能被简单的忽略 运行时异常 运行时异常是可能被程序员避免的异常,与检查性异常相反,运行时异常可以在编译时被忽略 错误(Error) 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略原创 2021-01-22 18:40:32 · 59 阅读 · 0 评论 -
Java学习Day37之内部类
内部类 内部类就是在一个类的内部再定义一个类。比如A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类 分类: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类 package com.opp.YSHG12; public class Application { public static void main(String[] args) { Outer outer = new Outer(); outer.o原创 2021-01-21 18:07:09 · 73 阅读 · 0 评论 -
Java学习Day36之接口
接口的定义和实现 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范!自己无法写方法(专业的约束,约束与实现分离) 接口不能被实例化,接口中没有构造方法 implements:可以通过 implements 实现多个接口,但必须要重写接口的方法 接口就是规范,定义的是一组规则 接口的本质是契约 OO(接口)的精髓,是对对象的抽象,最能体现这一点的就是接口 注意:声明类的关键字是 class ,声明接口的关键字是 interface,在类中用 im原创 2021-01-21 18:05:11 · 61 阅读 · 0 评论 -
Java学习Day35之抽象类
抽象类 abstract 修饰符可以用来修饰方法也可以修饰类。如果修饰方法,那么该方法就是抽象方法,如果修饰类,那么该类就是抽象类 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类 抽象类:不能使用new关键字来创建对象,它是用来让子类继承的 抽象方法:只有方法的声明,没有方法的实现,它是用来让子类实现的 子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类 extends 的局限性:只能单继承。但是,接口可以多继承 package原创 2021-01-20 16:27:49 · 73 阅读 · 0 评论 -
Java学习Day34之static关键字详解
静态属性 package com.opp.YSHG9; // 静态属性 public class Student { private static int age; // 静态的变量 private double score; // 非静态的变量 public static void main(String[] args) { Student s1 = new Student(); System.out.println(Student.age);原创 2021-01-20 16:27:09 · 74 阅读 · 0 评论 -
Java学习Day33之多态
多态 即同一方法可以根据发送对象的不同而采取多种不同的行为方式 一个方法的实际类型是确定的,但可以指向对象的引用的类型有很多 多态存在的条件: 有继承关系 子类重写父类方法 父类引用指向子类对象 注意:多态是方法的多态,属性没有多态性 类型转换异常:ClassCastException! package com.opp.YSHG6; public class Application { public static void main(String[] args) {原创 2021-01-19 21:22:01 · 71 阅读 · 0 评论 -
Java学习Day32之继承
继承 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模 extends 的意思是“扩展”,子类是父类的扩展 Java类中只有单继承,没有多继承 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类时用关键词 extends 来表示 子类和父类之间,从意义上讲,应该具有 is a 的关系 子类继承了父辈就会拥有父类的全部方法 object 类:在Java中所有的类都默认直接或间接继承 object 类原创 2021-01-18 16:18:00 · 83 阅读 · 0 评论 -
JAVA学习Day31之封装
封装 该露的露,该藏的藏 我们程序设计就要追求 “高内聚,低耦合”。 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合就是仅暴露少量的方法给外部使用 封装(数据的隐藏) 通常,应禁止直接访问一个对象中的数据的实际表示,而应通过操作接口来访问,这称为信息隐藏 这句话就够了:属性私有,get/set 作用: 提高程序的安全性,保护数据 隐藏代码的实现细节 统一接口 增加了系统的可维护性 package com.opp.YSHG3; public class App原创 2021-01-13 16:22:33 · 58 阅读 · 0 评论 -
JAVA学习Day30之类与对象的创建和构造器
类与对象的关系 类是一种抽象的数据类型,它是对一类事物整体描述/定义,但是并不能代表一个具体的事物 创建与初始化对象 使用new关键字创建对象 使用new关键字创建的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用 package com.opp.YSHG2; // 一个项目应该只有一个main方法 public class Application { public static void main(String[] args) { //原创 2021-01-11 15:58:11 · 80 阅读 · 0 评论 -
JAVA学习Day29之什么是面向对象
什么是面向对象 面向对象编程(Object-Oriented Programming,OOP) 面向对象编程的本质:以类的方式组织代码,以对象的组织(封装)数据 抽象 三大特征: 封装 继承 多态 从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象 从代码运行角度考虑是先有类后有对象。类是对象的模板 ...原创 2021-01-11 15:55:48 · 92 阅读 · 0 评论 -
JAVA学习Day28之冒泡排序和稀疏数组
冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序 时间复杂度为O(n2) package com.yshg.zuoye; import java.util.Arrays; public class ZUOYE11 { //冒泡排序 public static void main(String[] args) { int[] a = {1,3,24,65,4,34,31,8,23,32}; int[] sort = sort(a);//调用原创 2021-01-07 14:52:21 · 76 阅读 · 0 评论 -
JAVA学习Day27之Arrays类
Arrays 类 数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API 中提供了一个工具类 Arrays 供我们使用,从而可以对数组对象进行一些基本的操作 查看JDK帮助文档 Arrays 类中的方法都是static 修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”) Arrays 类具有以下常用功能: 给数组赋值:通过 fill 方法 对数组排序:通过 sort 方法 比较数组:通过 equa原创 2021-01-06 23:18:53 · 70 阅读 · 0 评论 -
JAVA学习Day26之多维数组
多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组 二维数组 package com.yshg.array; public class YSHG5 { public static void main(String[] args) { int [][] array = {{1,2},{3,4},{5,6}}; System.out.println(array[0][0]); // 输出 1原创 2021-01-06 22:31:48 · 66 阅读 · 0 评论 -
JAVA学习Day25之数组
数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 数组声明创建 首先必须声明数组变量,才能在程序中使用数组 声明数组变量的语法: dataType[ ] arrayRefVar;//首选的方法 或 dataType arrayRefVar[ ];//效果相同,但不是首选方法 Java语言使用new操作符来创建数组 语法: dataType[ ] arra原创 2021-01-05 17:09:05 · 67 阅读 · 0 评论 -
JAVA学习Day24之递归
递归 递归就是:A方法调用A方法! 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略值需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合 递归结构包括两个部分: 递归头:什么时候不调用自生方法。如果没有头,将陷入死循环 递归体:什么时候需要调用自身方法 public class YSHG6 { // 递归实现阶乘 p原创 2021-01-02 22:28:13 · 60 阅读 · 0 评论 -
JAVA学习Day23之方法
方法 System.out.println() System 是一个类 out 是一个对象(输出对象) println() 是一个方法 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 package com.yshg.method; public class YSHG1 { //main方法 public static void main(String[] args) { int sum = a原创 2021-01-08 16:59:43 · 66 阅读 · 0 评论 -
JAVA学习Day22之打印一个三角形
打印一个三角形 package com.yshg.struct; public class YSHG19 { public static void main(String[] args) { //打印一个五行三角形 for(int i = 1;i <= 5;i++){ for(int j = 5;j >= i;j--){ System.out.print(" "); }原创 2020-11-02 20:04:06 · 64 阅读 · 0 评论 -
JAVA学习Day21之break和continue
break break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强制退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用) package com.yshg.struct; public class YSHG17 { public static void main(String[] args) { int i = 0; while (i<100){ i++;原创 2020-11-02 20:02:12 · 142 阅读 · 0 评论 -
JAVA学习Day20之循环结构
循环结构 while循环 结构: while(布尔表达式){ //循环内容 } 只要布尔表达式为true,循环就会一直执行下去 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环 少部分情况需要循环一直执行,比如服务器的请求响应监听等 循环条件一直为true就会造成无限循环(死循环),我们正常的业务编程中应当尽量避免死循环,死循环会影响程序性能或者造成程序卡死崩溃 从1加到100 package com.yshg.struct; public class原创 2020-10-14 15:33:46 · 82 阅读 · 0 评论 -
JAVA学习Day19之switch多选择结构
switch多选择结构 多选择结构还有一个实现方式就是switch case语句 package com.yshg.struct; public class YSHG6 { public static void main(String[] args) { //switch匹配一个具体的值 char grade = 'E'; switch (grade){ case 'A':原创 2020-10-12 22:31:03 · 78 阅读 · 0 评论 -
JAVA学习Day18之if选择结构
if选择结构 if单选择结构 我们很多时候需要判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示 语法: if(布尔表达式){ //如果布尔表达式为true,执行的语句 } package com.yshg.struct; import java.util.Scanner; public class YSHG2 { public static void main(String[] args) { //if单选择结构 Sc原创 2020-10-11 15:24:51 · 97 阅读 · 0 评论 -
JAVA学习Day17之顺序结构
顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行 顺序结构是最简单的算法结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wE2wA5ii-1602386486607)(C:\Users\Lenovov\Pictures\下载图片\u=552086653,264682543&fm=26&gp=0.jpg)] 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法原创 2020-10-11 11:22:04 · 67 阅读 · 0 评论 -
JAVA学习Day16之用户交互(Scanner的使用)
用户交互 java.util.Scanner工具类可以获取用户的输入 基本语法: Saanner s = new Scanner(System.in); 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。 next() 一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的空白。next()方法会自动将其去掉 只有输入有效字符后才将其后面输入的空白作为分隔符或者原创 2020-10-10 23:48:17 · 87 阅读 · 0 评论 -
JAVA学习Day15之JAVADoc命令
JavaDoc JavaDoc命令是用来生成自己API文档的 格式:javadoc 参数 Java文件 学会用IDEA生成JavaDoc文档 参数信息 @author 作者名 @version 版本号 @since 指明需要最早使用的JDK版本 @param 参数名 @return 返回值情况 @throws 异常抛出情况 package com.yshg.bass; /** * @author YSHG * @version 1.0 * @since 1.8 */ publi原创 2020-10-08 22:12:10 · 76 阅读 · 0 评论 -
JAVA学习Day14之包机制
包机制(包的本质就是文件夹,防止命名空间重复) 为了更好的组织类,Java提供了包机制,用于区分类名的命名空间 包语句的语法格式为 package pkg1[. pkg2[. pkg3…]];(必须放在最上面) 一般利用公司域名倒置作为包名(com.baidu.www) 为了能够使用某一个包的成员,我们需要在 Java程序中明确导入该包(包名不能重复)。 使用"import"语句可完成此功能 格式:import package[.package2…].(classname|*);原创 2020-10-07 22:51:50 · 62 阅读 · 0 评论 -
JAVA学习Day13之运算符
运算符(注意优先级) 算数运算符:+,-,*,/,%(取余,模运算),++,– package operator; public class YSHG1 { public static void main(String[] args) { //二元运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a+b);原创 2020-10-07 22:07:49 · 66 阅读 · 0 评论 -
JAVA学习Day12之变量
变量 变量就是可以变化的量 Java是一种强类型语言,每个变量都必须声明其类型 Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域 注意事项: 每个变量都必须有类型,类型可以是基本类型,也可以是引用类型 变量名必须是合法的标识符 变量声明是一条完整的语句,因此每一个声明都必须以分号结束 可以使用逗号来声明多个同类型变量(不建议这么写,写程序注重程序的可读性) public class CAOGAO { public static void main(St原创 2020-10-06 17:27:56 · 113 阅读 · 0 评论 -
JAVA学习Day11之类型转换
类型转换 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换 低>>>>>>>>>>>>>>>>>>>>>>>>>>>>>高(转换线) byte, short, char, int, long, float(小数的优先级一定大于整数), double(本质都是数字,都可以进行加减乘除的运算) 运算中,不同类原创 2020-10-04 14:04:21 · 67 阅读 · 0 评论 -
JAVA学习Day10之数据类型的扩展
数据类型扩展 整数扩展 进制问题 二进制:以0b开头(01) 十进制:无开头(0123456789) 八进制:以0开头(01234567) 十六进制:以0x开头(0123456789ABCDEF) (A是10,F是15) public class YSHG1 { public static void main(String[] args) { int i = 10; int i2 = 0b10; int i3 = 010;原创 2020-10-03 22:56:50 · 72 阅读 · 0 评论 -
JAVA学习Day9之JAVA的基本语法
JAVA基础语法 注释,标识符,关键字 数据类型 类型转换 变量,常量 运算符 包机制,JavaDoc 注释 用于代码量多,项目结构复杂的情况 注释并不会被执行,是写给写代码的人看的 书写注释是一个非常好的习惯 平时写代码一定要注意规范 Java中的注释有三种 单行注释 多行注释 文档注释 例如: public class HelloWorld { public static void main(String[] args) { Syste原创 2020-10-03 15:39:52 · 85 阅读 · 0 评论 -
JAVA学习Day8之下载编辑器
下载IntelliJ IDEA 快捷方式: psvm: public static void main(String[] args){ } sout: System.out.print();原创 2020-10-03 15:37:05 · 77 阅读 · 0 评论 -
JAVA学习Day7之JAVA程序的运行机制
Java程序运行机制 编译型(complie)(将源代码直接编译成计算机可以执行的代码,相当于将一本书直接翻译了过来) 负责编译的程序叫编译器 如C语言,C++语言… 解释型(相当于我说一句,你解释一句) 如Java,python… 程序运行机制 备注: 源程序经过预编译生成字节码(字节码介于Java语言和机器语言),最后到操作系统平台的时候才解释 Java是编译型和解释型的结合 Java是编译型和解释型的结合 ...原创 2020-10-02 23:07:52 · 77 阅读 · 0 评论 -
JAVA学习Day6之安装JDK
卸载JDK 删除Java的安装目录 删除环境变量中的JAVA_HOME 删除环境变量中的path下关于JAVA的目录 java -version检测 安装JDK 下载JDK8 安装JDK 记住安装路径 配置环境变量 我的电脑>右键>属性 环境变量>在系统变量中新建JAVA_HOME 配置变量中的Path变量 测试JDK是否安装成功 打开cmd 输入java -version HelloWorld 新建一个文件夹,存放代码 新建一个Java文件原创 2020-10-02 22:19:09 · 71 阅读 · 0 评论 -
JAVA学习Day5之了解JAVA
JAVA的特性 简单性 面向对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性 JDK(Java Development Kit) Java开发者工具,包含JRE和JVM JRE(Java Runtime Environment) Java运行时环境 JVM(Java Virtual Machine)虚拟机 虚拟的计算机,因此可以跨平台。 JAVA开发环境搭建 JDK下载与安装 配置环境变量 JDK目录介绍 HelloWorld及简单语法规则 Notepad++安装和使用 ...原创 2020-10-02 20:10:18 · 47 阅读 · 0 评论 -
Java学习Day4之语言
机器语言(第一代语言) 二进制,机器可以直接读懂,无需转换。 汇编语言(第二代语言) 解决人类无法读懂机器语言的问题,代替二进制。 高级语言(第三代语言) C语言是典型的面向过程的语言,C++、JAVA是典型的面向对象的语言。 还有C#、Python、PHP、JavaScript… ...原创 2020-10-02 16:10:41 · 124 阅读 · 0 评论 -
Java学习Day3之Dos命令
Dos命令 打开CMD的方式 点击开始,点击Windows系统,点击命令提示符 Windows+R 输入CMD Shift+鼠标右键,点击在此处打开Powershell窗口 资源管理器地址栏中的路径前面加上cmd+空格 管理员身份运行(可拿到最高权限) 点击开始,点击Windows系统,右键点击命令提示符,点击以管理员身份运行 常用的Dos命令 #盘符切换 盘符: 或 cd /d 盘符: #查看当前目录下的所有文件 dir #同盘符切换目录原创 2020-10-02 15:52:14 · 156 阅读 · 0 评论 -
Java学习Day2之了解计算机
计算机 计算机硬件 一些物理装置按系统结构的要求构成一个有机整体为计算机软件提供物质基础。 装机 CPU Memory(内存) Motherboard(主板) 显卡 IO设备 冯·诺依曼体系结构 计算机软件 可以使计算机按照事先预定好的顺序完成特定的功能。 可以按照其功能划分为系统软件和应用软件。 系统软件 DOS(Disk Operating System) Windows Linux Unix Mac Android iOS 应用软件 WPS QQ 微信 英雄联盟 绝地求生 …原创 2020-10-02 14:36:38 · 164 阅读 · 0 评论 -
Java学习Day1之MarkDown的运用
MarkDown学习 标题:#+空格+标题名 三级标题 … 六级标题 字体: Hello World ! Hello World ! Hello World ! Hello World ! 引用:>+空格 选择JAVA,走向人生巅峰 分割线:—或*** 图片:!+[名称]+(图片路径) 此处是网址 超链接:[名称]+(地址或网址) 点击此处跳转 在网站里会生效 列表:(有序)数字+.+空格+内容(无序)-+空格 A B C A B C 表格:右键插入或如下所示 名字原创 2020-10-02 13:21:03 · 113 阅读 · 0 评论