自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 Java多线程——静态代理模式

1. 代理对象可以做很多真实对象做不了的事情;1. 真实对象和代理对象都要实现同一个接口;2. 真实对象专注做自己的事情。2. 代理对象要代理真实角色。

2024-05-24 14:52:03 118

原创 Java多线程——实现Callable接口

4. 创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(3);5. 提交执行:Future<Boolean>result1 = ser.submit(t1);6. 获取结果:boolean r1 = result1.get();7. 关闭服务:ser.shutdownNow();1. 实现Callable接口,需要返回值类型;2. 重写call方法,需要抛出异常;1. 可以定义返回值;3. 创建目标对象;2. 可以抛出异常。

2024-05-24 13:36:04 120

原创 Java多线程案例——龟兔赛跑

1. 首先确定赛道距离,然后要离终点越来越近;2. 判断比赛是否结束;4. 龟兔赛跑比赛开始;6. 最后乌龟赢得比赛。3. 打印出胜利者;5. 模拟兔子睡觉;

2024-05-23 18:11:39 148

原创 Java多线程——实现Runnable接口

2. 启动线程:传入目标对象+Thread对象.start();推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用。1. 子类继承Thread类具备多线程能力;1. 实现接口Runnable具有多线程能力。2. 启动线程:子类对象.start();不建议使用:避免oop单继承局限性。定义MyRunnable类实现。——实现Runnable接口。方法,编写线程执行体。

2024-05-23 17:31:08 104

原创 Java多线程——继承Thread类

然后右击lib,选择Add as libary,搞定。注意,线程开启不一定立刻执行,由CPU调度执行。多条执行路径,主线程和子线程。方法,编写线程执行体。

2024-05-23 15:45:45 152

原创 Java异常——自定义异常

3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作;除此之外,用户还可以自定义异常。2. 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常;1. 处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理;3. 对于不确定的代码,也可以加上try-catch,处理潜在的异常;5. 具体如何处理异常,要根据不同的业务需求和异常类型去决定;

2024-05-16 12:57:47 285

原创 Java异常——捕获和抛出异常

【代码】Java异常——捕获和抛出异常。

2024-05-16 11:38:26 141 1

原创 Java异常——Error和Exception

在实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的,我们程序跑着,内存或硬盘可能满了等。软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们将其称之为,意思是例外。面对这些异常,或者叫例外情况,我们需要让写的程序做出合理的处理,使程序不至于崩溃。异常指程序运行中出现的不期而至的各种情况,如:文件找不到、网络连接失败、非法参数等。

2024-05-16 10:44:10 697

原创 Java面向对象——内部类

内部类就是在一个类的内部再定义一个类,比如:A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。

2024-05-15 20:08:29 247

原创 Java面向对象——接口的定义与实现

OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(如C++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能...”的思想。如:如果你是学生,则必须能学习;如果你是汽车,则必须能跑。5. 接口不能被实例化,接口中没有构造方法。,就是法律一样,制定好后大家都必须遵守。2. 定义一些方法,让不同的人实现。7. 必须要重写接口中的方法。普通类:只有具体实现。

2024-05-15 12:04:56 230

原创 Java面向对象——抽象类

修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。抽象的作用:提高开发效率。

2024-05-15 11:34:54 224

原创 Java面向对象——static关键字补充

直接在代码展示,方便阅读理解~

2024-05-15 09:58:43 109

原创 Java面向对象——多态

即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)。1. 有继承关系;2. 子类重写父类的方法;3. 父类引用指向子类对象。1. 多条是方法的多态,属性没有多态;2. 父类和子类,有联系 类型转换异常:ClassCastException!1. static方法,属于类,不属于实例,所以该方法不能被重写;2. final 常量;无法重写;3. private方法 私有;无法重写。

2024-05-14 23:09:19 527

原创 Java面向对象——继承

继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。extands的意思是“扩展”。子类就是父类的扩展。Java中类只有单继承,没有多继承。继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有“is a”的关系。1. super调用父类的构造方法,必须在构造方法的第一个;2. super必须只能出现在子类的方法或者构造方法中;

2024-05-14 16:58:46 345

原创 Java面向对象——封装

高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合就是仅暴露少量的方法供外部使用。——通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。1. 提高程序的安全性,保护数据;2. 隐藏代码的实现细节;4. 增加系统的可维护性。——我们程序设计要追求。

2024-05-14 14:41:45 178

原创 Java面向对象——类与对象的创建

类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物——如:动物、植物、手机、电脑......——如:Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为。对象是抽象概念的具体实例——如:王二麻子是人的一个具体实例,旺财是狗的具体实例;——能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。

2024-05-13 22:49:50 169

原创 Java面向对象(索引):嘛是面向对象?

的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。2. 面向对象适合处理复杂的问题,适合处理需要多人协作的问题。从代码运行角度考虑是先有类后有对象。1. 步骤清晰简单,第一步、第二步......2. 面向过程适合处理一些较为简单的问题。抽象:浅白而言,就是提取共同点。

2024-05-12 19:09:00 137

原创 Java数组——稀疏数组

当一个数组中的大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。2. 第0行3列,有效数字为22,后以此类推(记得行、列开始数字是0)。2. 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而。1. 记录数组一共有几行几列,有多少个不同值;举例:编写简易五子棋,有存盘退出和继续上盘的功能。1. 一共6行7列,8个有效数字;

2024-05-12 16:13:07 90

原创 Java数组——冒泡排序

1. 比较数组中两个相邻元素,如果第一个元素比第二个元素大,交换位置。2. 每一次比较,都会产生一个最大,或者最小的数字;3. 下一轮可以少一次排序。4. 依次循环,直到结束。冒泡排序代码并不复杂,当然,我们还能进一步。

2024-05-12 14:16:33 241 1

原创 Java数组——Arrays类

由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不用使用对象来调用。4. 查找数组元素: 通过binarySearch方法能对排序好的数组进行二分查找法操作。3. 比较数组: 通过equals方法比较数组中元素值是否相等;2. 对数组排序: 通过sort方法,按升序;1. 给数组赋值: 通过fill方法;

2024-05-12 13:54:35 108

原创 Java数组——多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。以上数组即为两行五列数组。

2024-05-10 14:27:57 78

原创 Java数组——数组的使用

【代码】Java数组——数组的使用。

2024-05-10 14:13:10 149

原创 Java数组——下标越界和小结

1. 其。数组一旦被创建,它的大小就是不可以被改变的;2. 其,不允许出现混合类型;3. 数组中的,包括基本类型和引用类型;4. 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

2024-05-10 13:48:06 162

原创 Java数组:三种初始化

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

2024-05-09 21:49:38 165

原创 Java——数组的声明与创建

获取数组长度: arrays.length。,才能在程序中使用数组。数组的元素是通过索引访问的,数组索引。//效果相同,非首选。

2024-05-09 20:22:42 112

原创 Java方法——递归

利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原则问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。1. 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。2. 递归体:什么时候需要调用自身方法。

2024-05-09 16:50:04 95

原创 Java方法——可变参数

从JDK1.5开始,Java支持传递同类型的可变参数给一个方法。任何普通的参数必须在它之前声明。在方法声明中,在指定参数类型后。

2024-05-09 16:10:39 96

原创 Java方法——命令行传参

5. 输入java method.Demo03 hello i am chenyang 执行完成。有时候你希望运行一个程序的时候再给它传递消息,这要靠传递命令行参数给main()函数实现。3. 输入javac Demo03(用你自己的命名)——>会生成一个Demo03.class。2. 地址栏输入cmd+空格 打开命令行。4. 输入cd ../ 返回上一级。

2024-05-09 14:41:43 176

原创 Java方法的重载

方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,若匹配失效,则编译器报错。2. 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等);4. 仅仅返回类型不同不足以成为方法的重载。3. 方法的返回类型可以相同也可以不同;1. 方法名称必须相同;重载就是在一个类中,

2024-05-09 14:14:49 104

原创 Java方法的定义和调用

Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段。。这是可选的。告诉编辑器如何调用该方法。定义了该方法的访问类型。方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值,此情况下,returnValueType是关键字void。是方法的实际名称。方法名和参数表共同构成方法签名。参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。

2024-05-04 18:49:16 189

原创 Java—何谓方法?(索引)

方法的本意是功能块,就是实现某个功能的语句块的集合。我么在设计方法的时候,最好保持方法的原子性——就是一个方法只完成一个功能,这样有利于我们后期的拓展。3. 方法在程序中被创建,在其他地方被引用。1. 方法是解决一类问题的步骤的有序组合;2. 方法包含于类或对象中;

2024-05-04 17:44:35 177 1

原创 Java流程控制—break、continue、goto

break在任何循环语句的,均可用break控制循环的流程。break用于,不执行循环中的剩余语句。(break语句也可在switch语句中使用)continue语句用在循环语句体中,用于,即跳过循环体中尚未执行的语句,下一次是否执行循环的判定。

2024-04-30 22:23:54 111 1

原创 Java流程控制—for循环

1. 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句;2. 然后检测布尔表达式的值。若为true,循环体执行。否则循环终止,开始执行循环体后面语句;一些Java提供了一种语句—for循环,让一些循环结构变得更简单。2. 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。4. 再次检测布尔表达式的值。5. for (;for循环执行的次数是在。

2024-04-28 22:16:28 116

原创 Java流程控制—while/do...while循环

while循环是最的循环。while(布尔表达式){//循环内容1. 只要布尔表达式为true,循环就会一直进行;2.大多数情况,我们要让循环停止,需要使用一个条件来让它结束循环;3. 少数情况下,需要循环一直进行,如服务器的请求响应监听等;4. 循环条件一直为true就会造成无限循环(死循环),应尽量避免;

2024-04-28 21:19:17 129 1

原创 Java流程控制—switch多选择结构

switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。2. 从Java SE 7 开始,支持字符串String类型。//你可以使用任意数量的case语句。3. case标签必须为字符串常量或字面量。多选择结构还有一种实现方式——使用。: //可选。

2024-04-28 14:49:45 229

原创 Java流程控制—if选择结构

有时在执行某个东西之前,需要判断其是否可行,在这个判断动作当中用if语句来表示。if如果布尔表达式为true将执行的语句结果可以亲自手敲尝试一下~ 下同。

2024-04-26 20:58:04 300 1

原创 Java流程控制—顺序结构

的顺序进行的,它是由若干个依次执行的处理步骤组成的,,除非特别指明,否则就按照顺序一句一句地执行。它是任何一个算法都离不开的一种基本算法结构。语句与语句之间,框与框之间是按照。

2024-04-26 18:47:36 202 3

原创 Java流程控制—Scanner对象

我们可以通过Scanner类来获取用户的输入基本语法:new通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

2024-04-26 16:44:38 346 1

原创 JavaDoc

3. 输入javadoc -encoding UTF-8 -charset UTF-8 Doc.java。也可以通过IDEA来生成Java文档,很多博客都有介绍,不做赘述。3. @since:指明需要最早使用的jdk版本。6. @throws:异常抛出情况。5. @return:返回值情况。2. @version:版本号。1. @author:作者名。4. @param:参数名。JavaDoc命令是用来。2. 导航栏打开cmd。

2024-04-25 18:37:52 226 2

原创 Java包机制

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用 import 语句可完成此功能。为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。2. package必须要在import语句之上。补充:如何导入一个包下所有的类?· 一般利用公司域名倒置作为包名;如:com.baidu.www。1. 导入包名不要重复。

2024-04-25 17:47:03 140 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除