Java
SuperSunQ
知人者智,自知者明!胜人者有力,胜己者强!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2022 第一篇 单例模式的所有写法及其优缺点
单例模式的特点:1、构造器私有化(无法再new一个新的对象,保证对象唯一)2、类内部创建对象(static)3、对外公开一个获取该对象的方法单例模式从设计层面保证了一个类只有一个实例对象,并且只提供一个获取对象的静态方法实现单例模式一共有8种方式,其中6种是可以使用的方式:1、静态常量的饿汉式class Singleton{ private Singleton(){} private final static Singleton instance = new Singleton(); p原创 2022-02-28 21:43:28 · 305 阅读 · 0 评论 -
mysql分页查询
limit start, rows 原本为 从第几行开始取出几行,衍生一个公式如下:原创 2021-08-30 21:03:30 · 111 阅读 · 0 评论 -
Java IO流
创建文件三种方式:public class FileCreate { public static void main(String[] args) { }// 创建文件1 @Test public void create01() { String filePath = ".\\news1.txt"; File file = new File(filePath); try { //根绝路径原创 2021-06-05 11:25:40 · 311 阅读 · 2 评论 -
Java 线程
创建线程的两种方式在Java中线程的使用有两种方法:继承Thread类,重写run方法实现Runnable接口,重写run方法当main线程启动一个子线程 Thread-0, 主线程不会阻塞, 会继续执行关于start()方法和run()方法public class Thread01 { public static void main(String[] args) throws InterruptedException { //创建Cat对象,可以当做线程使用原创 2021-05-27 16:21:21 · 199 阅读 · 1 评论 -
Java事件处理机制
Java事件处理采取"委派事件模型"。当事件发生时,产生事件的对象,会把此“信息”传递给“事件的监听者”进行处理。这里的“信息”实际上是java.awt.event事件类库里某个类所创建的对象,把它称为“事件的对象”。事件源:事件源是一个产生事件的对象,比如按钮、窗口事件:事件就是承载事件源状态改变时的对象,比如当键盘事件、鼠标事件、窗口事件等等,会生成一个事件对象,该对象保存着当前事件很多信息,比如KeyEvent对象有含有被按下的Code值。java.awt.event包和javax.swing.原创 2021-05-22 07:37:09 · 297 阅读 · 0 评论 -
Java绘图技术
绘图原理Component类提供了两个和绘图相关最重要的方法paint(Graohics g)绘制组件的外观repaint() 刷新组建的外观当组件第一次在屏幕显示的时候,程序会自动地调用paint()方法来绘制组件。在以下情况paint()将会被调用:窗口最小化,再最大化窗口的大小发生变化repaint函数被调用...原创 2021-05-21 10:35:57 · 143 阅读 · 0 评论 -
Java 泛型
不使用泛型的问题举例:不能对加入集合ArrayList中的数据类型进行约束(不安全)便利的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响public class Generic01 { public static void main(String[] args) { //使用传统的方法来解决 ArrayList arrayList = new ArrayList(); arrayList.add(new Dog("旺财", 1原创 2021-05-19 16:09:28 · 276 阅读 · 1 评论 -
Java LIst集合全解
集合的优势:(1)数组存储的不足与缺陷:长度开始必须执行,而且一旦指定,无法修改 保存的必须为同一类型的元素 使用数组进行增加/删除操作比较麻烦(2)集合的好处:可以动态保存多个对象,使用方便 提供了一系列方便的操作对象的方法,如add、remove、set、get等 使用集合增加/删除较方便集合的框架图 (重要)集合主要是两组:单列集合、双列集合Collection接口有两个重要的子接口List、Set,他们的实现子类都是单列集合Map接口的实现子类是双列集合,存放K-原创 2021-05-18 20:46:51 · 22139 阅读 · 2 评论 -
Java TreeSet和TreeMap
TreeSet和TreeMap 1. 当我们使用无参构造器,创建TreeSet时,仍然是无序的 2. 老师希望添加的元素,按照字符串大小来排序 3. 使用TreeSet 提供的一个构造器,可以传入一个比较器(匿名内部类) 并指定排序规则TreeSet:当我们使用无参构造器,创建 TreeSet 时,默认调用添加对象的类的Compareto方法进行排序,如果传入的Key对象没有实现Comparable接口,会抛出classCastException。比如:传入的Key为St原创 2021-05-18 14:39:38 · 272 阅读 · 0 评论 -
Java Map集合详解
JDK8 的Map接口特点:1)Map与Collection并列存在,用于保存具有映射关系的数据: Key-Value原创 2021-05-18 10:37:55 · 446 阅读 · 0 评论 -
Java Set集合详解
Set接口基本介绍:1)无序(添加和取出顺序不一致),没有索引2)不允许重复元素,最多只能有一个 null3)其实现类如下:Set接口常用方法:和List接口一样,Set接口也是Collection的子接口,因此,常用方法和Collection接口一样Set接口的遍历方式:和Collection的遍历方式一样,1)可以使用迭代器,2)增强for 3)不能使用索引的方式来获取public class SetMethod { public static ...原创 2021-05-14 08:19:04 · 739 阅读 · 3 评论 -
Java LinkedList
LinkedList的说明:LinkedList底层实现了双向链表和双端队列的特点 可以添加任意元素(可以重复), 包括null 线程不安全,没有实现同步LinkedList底层机制LinkedList底层维护了一个双向链表 LinkedList中维护了两个属性first和last分别指向首节点和尾节点 每个节点(Node对象),里面又维护了prev、next、item三个属性,其中prev指向前一个,通过next指向后一个节点,最终实现双向链表 所以LinkedList的元素添加和删除原创 2021-05-12 08:26:03 · 237 阅读 · 0 评论 -
Java 日期类
Date日期类:public static void main(String[] args) throws ParseException { /** * 1、获取当前系统时间 * 2、这个Date类是在java.util包 * 3、默认输出的日期格式是国外的格式,因此通常需要对格式进行转换 */ Date d1 = new Date(); System.out.println("ti原创 2021-05-07 18:45:55 · 134 阅读 · 0 评论 -
Java String StringBuffer StringBuilder
(三)StringBuilderpublic class StringBuilder01 { public static void main(String[] args) { //老韩解读 //1. StringBuilder 继承 AbstractStringBuilder 类 //2. 实现了 Serializable ,说明StringBuilder对象是可以串行化(对象可以网络传输,可以保存到文件) //3. String原创 2021-04-26 17:24:32 · 110 阅读 · 0 评论 -
Java String StringBuffer StringBuilder
(二)StringBufferjava.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。很多方法和String相同,但是StringBuffer是可变长度的StringBuffer是一个容器public class StringBuffer01 { public static void main(String[] args) { //老韩解读 //1. StringBuffer 的直接父类 是 AbstractStrin.原创 2021-04-26 13:10:26 · 275 阅读 · 0 评论 -
Java String StringBuffer StringBuilder
(一)String(1)String对象用于保存字符串,也就是一组字符序列(2)字符串常量对象是用双引号括起来的字符序列(3)字符串的字符使用Unicode编码,一个字符占两个字节(4)String类常用构造器:String s1 = new Stirng();String s2 = new String(String original);String s3 = new String(char[] a);String s4 = new String (char[] a, int.原创 2021-04-26 12:23:25 · 144 阅读 · 0 评论 -
Java包装类
后六个包装类的父类是Number原创 2021-04-26 09:18:53 · 124 阅读 · 0 评论 -
Java 异常
Java异常: 程序执行中发生的不正常情况称为“异常”(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两类:(1)Error(错误):Java虚拟机无法解决的严重问题,比如:JVM系统内部错误、资源耗尽、栈溢出和OOM等情况。Error是严重错误,程序会崩溃(2)Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,读取不存在的文件,网络连接中断等情况。Exception分为两大类:运行时异常(程序运行时发生的原创 2021-04-25 22:10:46 · 150 阅读 · 0 评论 -
Java注解
说明:@interface 不是 接口,是注解类,是jdk5.0之后加入的1、@Override(1)@Override表明指定重写父类的方法(2)不写@Override注解,扔可构成重写.若写了@Override而不构成重写,则报错(3)@Override只能修饰方法,不能修饰属性、类、包等(4)@Override注解的源码为:@Target(ElementType.METHOD),说明只能修饰方法(5)@Target是修饰注解的注解,称为元注解2、@Deprecate...原创 2021-04-23 22:47:14 · 109 阅读 · 0 评论 -
Java 枚举 enum
1、当使用enum关键字设计一个枚举类,默认会继承Enum类,而且是一个final类2、必须知道调用的是哪个构造器3、如果使用无参构造器创建枚举对象,那么实参列表和小括号都可以省略4、当有多个枚举对象时,使用”,“间隔,最后一个分号结尾5、枚举对象必须放在枚举类的第一行6、枚举类不可以再继承其他的类,但可实现接口7、enum的静态方法values()会返回一个enum数组8、使用==判断两个枚举对象实例是否相等Enum常用方法:为什么enum可以使用==判断相等:原创 2021-04-23 22:20:21 · 202 阅读 · 0 评论 -
Java内部类
类的五大成员:属性、方法、构造器、代码块、内部类内部类:一个类的内部又完整地嵌套了另一个类结构,嵌套的类称为内部类、被嵌套的类称为外部类。内部类最大的特点:可以直接访问私有属性,并且可以体现类与类之间的包含关系基本语法:...原创 2021-04-23 20:15:33 · 290 阅读 · 0 评论 -
Java 接口
在接口中,抽象方法可以省略abstract细节:1)如果一个类 implements 一个接口,必须将该接口的所有抽象方法都实现2)接口不能被实例化3)接口中所有的方法都是public方法,接口中抽象方法可以不用abstract修饰4)一个普通类实现接口,就必须将该接口的所有方法都实现5)抽象类实现接口,可以不实现接口的抽象方法6)一个类可以同时实现多个接口7)接口中的属性,只能是final的,而且是public static final8)接口中属性的访问形式..原创 2021-04-22 17:31:26 · 474 阅读 · 0 评论 -
Java设计模式-----模板设计模式
public class Test { public static void main(String[] args) { Template aa = new AA(); aa.calculateTime(); BB bb = new BB(); bb.calculateTime(); }}public class AA extends Template{ @Override public void..原创 2021-04-22 11:09:55 · 115 阅读 · 0 评论 -
Java 抽象类细节
抽象类:1)用abstract 关键字来修饰一个类的时候,这个类是抽象类 :访问修饰符 abstract 类名{ }2)用abstract关键字来修饰一个方法时,这个方法就是抽象方法:访问修饰符 abstract 返回类型 方法名 (参数列表); //没有方法体3) 抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现。4)抽象类在框架和设计模式使用较多抽象类细节:1)抽象类不可被实例化2)抽象类不一定要包含abstract方法,也就是..原创 2021-04-22 10:51:11 · 149 阅读 · 0 评论 -
Java final关键字
对于第七条:可以做到调用某个静态变量,不会进行类的加载原创 2021-04-21 17:42:44 · 93 阅读 · 0 评论 -
Java设计模式----单例设计模式
单例模式:(对象通常是重量级对象)1、所谓单例设计模式:就是采取一定的方法保证在整个软件系统中,某个类只能存在一个对象实例,并且该类只提供一个取得对象实例的方法。2、单例设计模式有两种:(1)饿汉式(2)懒汉式(1)饿汉式:(就算不使用这个对象实例,只要类被记载,依然会创建, 可能造成资源浪费)步骤:构造器私有化(防止new) 类的内部创建对象(对象是static) 对外提供一个静态的公共方法返回对象实例 class Single{ //构造器私有化,防止直接new.原创 2021-04-21 16:17:20 · 123 阅读 · 1 评论 -
Java代码块
1、static 代码块也叫静态代码块,作用是对类进行初始化,随着类的加载而执行,并且只会执行一次。 普通代码块,每创建一个对象,就执行一次2、类什么时候被加载(1)创建对象实例时(new)(2)创建子类对象实例, 父类也会被加载。加载子类,父类也会被加载,而且父类先被加载(3)使用类的静态成员(静态属性,静态方法)时3、普通代码块,在创建对象实例时,会被隐式地调用 被创建一次,就会调用一次。 如果只是使用类的静态成员时,普通代码块不会执行4、调用...原创 2021-04-21 14:59:35 · 126 阅读 · 0 评论 -
Java 深入理解main方法
深入理解main方法public static void main(String[] args)1、 main方法是Java虚拟机在调用2、Java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public (因为调用的时候java虚拟机和main方法不在同一个类)3、java虚拟机执行main方法的时候不必创建对象,所以该方法必须是static4、main方法接受String类型的数组参数,该数组中保存执行java命令时传递给所执行的类的参数5、6、可以直接原创 2021-04-21 10:37:20 · 222 阅读 · 0 评论 -
Java 类变量和类方法
类变量(静态变量):static变量是对象共享,不管static变量在哪:(1)static是同一个类所有对象共享(2)static类变量,在加载的时候就生成了位置:JDK7以前放在方法区的静态域中JDK7以后放在静态域中,静态域存储于定义类型的Class对象中,Class对象如同队中其他对象一样,存在于GC堆中语法:访问修饰符 static 数据类型 变量名访问: 类名.类变量名/对象名.类变量名什么时候需要类变量:当需要某个类的所有对象都需要共享一个变量的时候原创 2021-04-21 10:06:31 · 169 阅读 · 0 评论 -
Java方法重写细节
1、子类的方法和形参列表,方法名称,要和父类方法的形参列表,方法名称完全一直。2、子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类3、子类方法不能缩小父类方法的访问权限(public > project > default > private)...原创 2021-04-20 21:36:32 · 140 阅读 · 0 评论 -
Java 断点调试
断点调试过程中,是运行状态,是以对象的运行类型来执行的原创 2021-04-20 18:46:57 · 187 阅读 · 0 评论 -
Java Object类详解
1、 ==和equals的对比:== 是一个比较运算符:(1)==:接可以判断基本数据类型也可以判断引用类型(2)==:如果判断基本类型,判断的是值是否相等。(3)==:如果判断引用类型,判断的是地址是否相等,也就是判断是否是一个对象equals方法:(1)equals: 是Object类中的方法,只能判断应用类型(2)默认判断的是地址是否相等,子类中往往重写这一方法,用于判断内容是否相等,2、hashCode 方法(1)提高具有哈希结构的容器的效率(2)两个引用,如.原创 2021-04-20 18:22:24 · 174 阅读 · 0 评论 -
Java 多态数组+多态参数
多态数组:数组的定义类型为父类类型,里面保存的实际元素类型为子类类型多态参数:方法定义的形参类型是父类类型,实参类型允许为子类类型原创 2021-04-20 16:21:31 · 365 阅读 · 0 评论 -
Java 动态绑定机制
Java的动态绑定机制:1、当调用对象方法时,该方法会和该对象的内存地址/运行类型绑定2、当调用对象属性时,没有动态绑定,哪里声明,哪里调用原创 2021-04-20 11:08:45 · 149 阅读 · 0 评论 -
多态细节
1、属性没有重写之说,属性的值看编译类型。2、instanceOf 比较操作符,用于判断对象的运行类型是否是XX类型或XX类型的子类型原创 2021-04-19 22:17:02 · 131 阅读 · 0 评论 -
Java this 关键字
原创 2021-04-19 09:42:27 · 101 阅读 · 0 评论 -
Java 向上转型和向下转型
多态的向上转型:(1)本质:父类的引用指向了子类对象(2)语法: 父类类型 引用名 = new 子类类型();(3)特点(规则):编译类型看左边,运行类型看右边。 可以调用父类中的所有成员(遵守访问权限)(实际运行时需要遵守访问权限,大概,存疑) 不能调用子类特有成员(原因:在编译阶段,能调用哪些成员,是由编译类型来决定的) 最终运行效果由子类具体实现决定(调用方法时,按照...原创 2021-04-19 22:07:54 · 622 阅读 · 0 评论 -
Java 多态
问题:代码复用性不高,且不利于代码维护解决:使用多态:多态的具体体现:1、方法的多态: 重载,传入不同的参数,就会调用不同 sum 方法,就体现多态 重写也体现多态2、对象的多态(核心、困难、重点):重要:(1)一个对象的编译类型和运行类型可以不一致...原创 2021-04-19 21:27:25 · 110 阅读 · 0 评论 -
Java super 关键字
super的一个好处:便于实现代码复用原创 2021-04-19 20:46:16 · 95 阅读 · 0 评论 -
继承的10个细节问题
1、子类继承了所有的属性和 方法,非私有的属性和方法可以在子类中直接访问,但是私有属性和方法不能在子类中直接访问,要通过父类提供的公有方法访问2、子类必须调用父类的构造器,完成父类的初始化3、当创建子类对象时,不管用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则编译不通过。4、如果希望指定去调用父类的某个构造器,则显式的调用一下 : super(参数列表) 5、sup原创 2021-04-19 20:25:30 · 118 阅读 · 0 评论
分享