Java
文章平均质量分 77
Arbicoral
宠辱不惊,看庭前花开花落;
去留无意,望天上云卷云舒。
展开
-
Java高级之反射
通过反射获取 Fan.java中的成员变量、成员方法、构造器等成分。示例代码:Fan.java。原创 2023-10-07 21:23:01 · 91 阅读 · 0 评论 -
Java集合总结
注意:Collection是一个接口,Collections是一个工具类,Map不是Collection的子接口。(Java5新增的队列),因此Java集合大致也可分成List、Set、Queue、Map四种接口体系。派生出来的,具体的结构如下图,绿色的是集合体系中常用的实现类;Java集合类是从两个根接口。原创 2023-09-18 09:54:17 · 89 阅读 · 0 评论 -
Java集合--Collection、Map、List、Set、Iterator、Collections工具类
集合、数组都是对多个数据进行存储从左的结构,简称Java容器说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt, .jpg, .avi,数据库中)2.1数组在存储多个数据方面的特点一旦初始化以后,其长度就确定了。数组一旦定义好,其元素的类型就确定了。我们也就只能操作指定类型的数据了。比如:String[] arr;int[] arr1;2.2数组在存储多个数据方面的缺点一旦初始化以后,其长度就不可修改。原创 2023-09-18 09:04:16 · 642 阅读 · 0 评论 -
Java高级之注解
参照@SuppressWarnings定义注解声明为:@interface内部定义成员,通常使用value表示可以指定成员的默认值,使用default定义如果自定义注解没有成员,表明是一个标识作用如果注解有成员,在使用注解时,需要指明成员的值//自定义注解,有默认值。原创 2023-09-17 21:02:39 · 91 阅读 · 0 评论 -
Java高级之枚举类
方式一:jdk 5.0之前,自定义枚举类1.声明Season对象的属性:private final 修饰2.私有化类的构造器,并给对象属性赋值3.提供当前枚举类的多个对象:public static final的4.其他诉求1:获取枚举类的对象的属性//1.声明Season对象的属性:private final 修饰//在构造器中赋值//2.私有化类的构造器,并给对象属性赋值//3.提供当前枚举类的多个对象:public static final的。原创 2023-09-17 20:59:35 · 233 阅读 · 0 评论 -
Java高级之泛型、自定义泛型、通配符的使用
泛型:标签;Generic中药店:每个抽屉外面贴着标签超市购物架上很多瓶子,每个瓶子装的是什么,有标签如何自定义泛型结构:泛型类、泛型接口,泛型方法自定义泛型类 Order/*** @Description: 自定义的泛型类/*** ① 泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系* 下面例子中:类的泛型是 String ,泛型方法的泛型是 Integer,没有任何关系* ② 换句话说,泛型方法所属的类是不是泛型类都没有关系。原创 2023-09-17 20:57:25 · 161 阅读 · 0 评论 -
Java高级之多线程基本概念及其优点、创建线程的2种方式、解决线程安全的3种方式
另外,**一个Java应用程序java.exe,其实至少有三个线程:mian()主线程,gc()垃圾回收线程,异常处理线程。:提前创建好多个线程,放入线程池中,使用时直接获取,使用完 放回池中。单核CPU:其实是一种加的多线程,因为 在一个时间单元内,也只能执行一个线程的任务。:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程, 对性能影响很大。相同点:两种方式都需要重写run(),将线程要执行的逻辑声明在run()中。是一个动态的过程:有它自身的产生、存在和消亡的过程。原创 2023-09-17 20:44:00 · 169 阅读 · 0 评论 -
Java高级之File类、节点流、缓冲流、转换流、标准I/O流、打印流、数据流
如果开发使用JUnit中的单元测试方式测试,相对路径即为当前Module下。如果使用main()测试,相对路径即为当前的Project下。:不管使用单元测试方法还是使用main()测试,相对路径即为当前的Project下。File对应的硬盘中的文件如果不存在,在输出的过程中,会自动创建此文件。:读取外部数据(磁 盘、光盘等存储设备的数据)到 程序(内存)中。:将程序(内存) 数据输出到磁盘、光盘等存储设备中。相对路径:相较于某个路径下,指明的路径。从内存中写出数据的到硬盘文件的操作。原创 2023-09-17 20:29:43 · 126 阅读 · 0 评论 -
Java常用类之 Java比较器、System类、Math类、BigInteger与BigDecimal
像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的**2. **像String、包装类重写了compareTo(obj)方法以后,进行了从小到大的排列**原创 2023-09-17 20:22:42 · 122 阅读 · 0 评论 -
Java常用类之 JDK 8之前的日期时间API 和 8中新日期时间API
java.util.Data类(父类)* |---java.sql.Date类(子类)** 1.两个构造器的使用* >构造器一:Date():创建一个对应当前时间的Date对象* >构造器二:创建指定毫秒数的Date对象** 2.两个方法的使用* >toString():显示当前的年、月、日时、分、秒* >getTime(): 获取当前Date对象对应的毫秒数(时间戳)*原创 2023-09-17 19:59:19 · 109 阅读 · 0 评论 -
Java常用类之 String、StringBuffer、StringBuilder
String实例化方式:1. **方式一:通过`字面量定义`的方式**2. **方式二:通过`new + 构造器`的方式** 面试题:String s = new String("abc"); 方式创建对象,在内存中创建了几个对象? 答:两个。一个是堆空间中new结构,一个是char[]对应的常量池中的数据:"abc"原创 2023-09-17 19:53:54 · 694 阅读 · 0 评论 -
String s =“abc“与String s = new String(“abc“)的区别&new String(“abc“)创建了几个对象
String s = new String(“abc”)会在堆中创建新的abc,不管之前是否存在。如果字符串常量池中不存在abc,则会在常量池中创建该字符串的引用。如果常量池中已经存在abc,则不会重新创建,常量池中的字符串不会重复。String s =“abc”,如果字符串常量池中不存在abc,会在字符串常量池中创建一个abc;如果已经存在,则s指向已经存在的abc。1.String s =“abc“与String s = new String(“abc“)的区别。搬运自Javaguide。转载 2023-09-17 18:05:48 · 121 阅读 · 0 评论 -
Java自定义异常类
1.继承于现有的异常结构 Exception RuntimeException。2.提供全局常量 serialVersionUID。自己实现一个异常类,名字叫。3.提供重重载的构造器。测试自己定义的异常类。原创 2023-09-17 17:58:07 · 221 阅读 · 0 评论 -
记录JDBC连接MySQL数据库时遇到的问题
记录使用 JDBC连接数据库的时候遇到的问题。java.lang.ClassNotFoundException: com.mysql.jdbc.Driver;com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 528 milliseconds ago. The last原创 2023-09-01 17:23:22 · 203 阅读 · 0 评论 -
Java Stream排序用法
【代码】Java Stream排序用法。原创 2023-08-31 15:36:20 · 877 阅读 · 0 评论 -
求二叉树的最小深度(深度优先和广度优先)
自己建一个二叉树,然后分别使用深度优先和广度优先找到二叉树的最小深度。原创 2023-08-18 21:52:56 · 185 阅读 · 0 评论 -
Java的异常Exception
步骤:继承于现有的异常结构:RuntimeException、Exception提供全局常量:serialVersionUID提供重载的构造器上游排污:污:异常,是throw排出来的污水(制造污水)下游治污:处理异常,处理的方案是直接往上面报,并没有真正的处理掉异常(治理污水)原创 2023-07-09 11:48:46 · 185 阅读 · 0 评论 -
面向对象编程主线--七--abstract、模板方法设计模式、接口、代理模式、内部类
abstract:抽象的类、方法abstract 修饰类:抽象类此类不能实例化抽象类中一定有构造器,便于子类实例化时调用那个(涉及:子类对象实例化的全过程)开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作abstract 修饰方法:抽象方法抽象方法只有方法的声明,没有方法体包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的。若子类重写了父类中的所有的抽象方法后,此子类方可实例化。原创 2023-07-09 11:45:21 · 161 阅读 · 0 评论 -
面向对象编程主线--六、static、final关键字、设计模式、代码块
设计模免去我们自己再思考和摸索。式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,”套路”所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类。原创 2023-07-09 11:44:38 · 134 阅读 · 0 评论 -
面向对象编程主线--五--多态、Object类、重载和重写、单元测试、包装类
若子类重写了父类方法编译看左边,运行看右边对于实例变量则不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,这个实例变量依然不可能覆盖父类中定义的实例变量编译运行都看左边谈谈你对多态性的理解?(还需重点理解)① 实现代码的通用性。② Object类中定义的 JDBC:使用java程序操作(获取数据库连接,CRUD)数据库(MySQL、Oracle、DB2、SQL Server )③ 抽象类、接口的使用肯定体现了多态性。(抽象类、接口不能实例化)原创 2023-07-08 15:02:45 · 234 阅读 · 0 评论 -
面向对象编程主线--四--继承、重写、super关键字、子类对象实例化过程
特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取父类中私有的结构。② 应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法。明确:虽然创建子类对象时,调用了父类的构造器,但是自始至终就创建过一个对象,即为new的子类对象。体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的结构:属性、方法。① 重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作。① 减少了代码的冗余,提高了代码的复用性。原创 2023-07-08 15:02:00 · 190 阅读 · 0 评论 -
面向对象编程主线--三--封装--构造器、JavaBean、UML类图、this关键字、MVC设计模式
当我们创建一个类的对象以后, 我们可以通过"对象.属性"的方式,对对象的属性进行赋值。总结封装性:Java提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小。① 我们在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类中指定的。⑤ 构造器内部,最多只能声明一个 “this(形参列表)”,用来调用其他的构造器。3、具体的,4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类。封装性的设计思想:把该隐藏的隐藏起来,该暴露的暴露出来。原创 2023-07-08 15:01:19 · 202 阅读 · 0 评论 -
面向对象编程主线--二--匿名对象的使用、可变形参、方法参数的值传递机制、递归方法
4、**可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。2.方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。2、当调用可变个数形参的方法时,传入的参数个数可以是:0个、1个、2个…3、可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载。 参数列表不同:参数个数不同,参数类型不同。形参:方法定义时,声明在小括号内的参数。实参:方法调用时实际传给形参的参数值。5、可变个数形参在方法的形参中,6、可变个数形参在方法的形参中,原创 2023-07-08 14:49:44 · 257 阅读 · 0 评论 -
面向对象编程主线--一--对象内存解析、类中方法的声明和使用、return
`面向过程`(POP,Procedure Oriented Programming):强调的是功能行为,以函数为最小单位,考虑怎么做。`面向对象`(OOP,Object Oriented Progamming):将功能封装进对象,强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。举例:> 问题描述:“人把大象装进冰箱”原创 2023-07-08 14:48:01 · 134 阅读 · 0 评论 -
四、程序流程控制--顺序结构、分支结构、循环结构、嵌套循环
顺序结构:程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构:根据条件,选择性地执行某段代码。有if-else和两种分支语句。循环结构:根据循环条件,重复性的执行某段代码。有whilefor三种循环语句。注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。原创 2023-07-08 11:21:35 · 210 阅读 · 0 评论 -
三、Java的运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。原创 2023-07-08 11:15:21 · 191 阅读 · 0 评论 -
二、Java的变量
Java中的名称命名规范:> `包名`:多单词组成时`所有字母都小写`:xxxyyyzzz> `类名、接口名`:多单词组成时,所有单词的`首字母大写`:XxxYyyZzz>> `变量名、方法名`:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: `xxxYyyZzz`> `常量名`:`所有字母都大写`。多单词时每个单词用下划线连接: XXX_YYY_ZZZ原创 2023-07-08 11:12:32 · 83 阅读 · 0 评论 -
一、Java基本概述
1、Java语言的特点特点一:面向对象两个基本概念:类、对象三大特性:封装、继承、多态特点二:健壮性去掉了C/C++中影响程序健壮性的部分(指针、内存的申请与释放等),有一个相对安全的内存管理和访问机制特点三:跨平台性“Write once, run anywhere“原理:在系统上安装一个Java虚拟机(JVM)即可运行程序。不同的操作系统JVM不一样。2、JDK和JREJDK:Java Development Kit,Java开发工具包,其中的开发工具:编译工具(javac.e原创 2023-07-08 11:01:13 · 206 阅读 · 0 评论 -
JVM探究
根据狂神说Java的JVM视频做的笔记!!!内存效率: 复制算法 > 标记清除算法 > 标记清除压缩算法(时间复杂度)内存整齐度:复制算法 = 标记清除压缩算法 > 标记清除算法内存利用率:标记清除压缩算法 = 标记清除算法 > 复制算法思考一个问题:难道没有最优算法吗?答案:没有。没有最好的算法,只有最合适的算法----->GC:粉黛收集算法存活率低复制算法!区域大:存活率高(不适合 用复制算法)标记清除(当内存碎片不是太多时用标记清除) + 标记压缩混合实现。原创 2023-06-28 18:28:57 · 476 阅读 · 0 评论