09 2020 档案
摘要:在看ArrayList源码的时候发现用到了System.arraycopy方法。 line 544 private void fastRemove(int index) { modCount++; int numMoved = size - index - 1; if (numMoved > 0)
阅读全文
摘要:目录1 概述2 常用实现类3 常用方法4 使用范例4.1 ArrayList4.2 Vector(不使用)4.3 LinkedList集合使用4.3.1 LinkedList源码解析4.4 ArrayList与LinkedList的区别 1 概述 List是一个接口,继承自Collection接口。
阅读全文
摘要:目录Collection接口常用方法存放String类型存放自建对象Collection和Collections的区别 Collection接口常用方法 int size();//集合大小 boolean isEmpty();//是否为空 boolean contains(Object o);//是
阅读全文
摘要:目录List删除指定元素 List删除指定元素 ArrayList的删除元素方法public boolean remove(Object o)只能删除第一次出现的情况,如果想要删除集合中全部位置出现过该元素的可以使用下面的方法 import java.util.ArrayList; import j
阅读全文
摘要:进程: 进程指的是正在运行中的程序。确切的来说,当一个程序进入内存,即变为一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 线程: 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程可以有多个线程,这个应用程序也可以称为多线程程序。 进程和线程的区别
阅读全文
摘要:目录1、线程的同步产生的原因2、线程的同步处理操作3、线程的死锁情况排查死锁的方式:请解释多个线程访问统一资源时需要考虑哪些情况?有可能带来哪些后果? 概念:Java同步和异步,阻塞和非阻塞 1、线程的同步产生的原因 没有同步的情况 class MyThread1 implements Runnab
阅读全文
摘要:目录线程命名和取得线程的休眠线程优先级(priority) 线程命名和取得 如果想要进行线程名称的操作,可以使用Thread类的如下方法: 构造方法:public Thread(Runnable target,String name); 设置名字:public final void setName(
阅读全文
摘要:目录继承Thread类实现Runnable接口实现Callable接口 如果要想在Java中实现多线程的三种途径: 继承Thread类; 实现Runnable接口; 实现Callable接口; 继承Thread类 需要覆写Thread类中的run方法。 package thread; //线程操作主
阅读全文
摘要:目录1、Lambda表达式介绍2、Lambda表达式语法细讲3、 Lambda表达式语法精简4、 Lambda方法引用5、 综合实例6、 @FunctionalInterface注解7、内建函数式接口 1、Lambda表达式介绍 package com.zjw; /** * Lambda表达式介绍
阅读全文
摘要:目录泛型的好处泛型类通配符设置泛型的上限设置泛型的下限泛型接口泛型方法 泛型的好处 提高代码的重用性(减少重载) 防止类型转换异常,提高代码的安全性 泛型类 注意 1、泛型只能使用引用类型 2、不同泛型类型对象之间不能相互赋值 package com.test; class Point<T>//实例
阅读全文
摘要:可变参数 public class Test01 { public static void main(String[] args) { System.out.println(add(123)); System.out.println(add(1,2,3)); System.out.println(a
阅读全文
摘要:1、异常的产生以及对程序的影响 10/0 异常产生后,打印出异常信息,中断程序的继续执行。 我们要做的就是即使异常也要让程序继续正确的执行下去。 2、异常处理的格式 try{ //有可能出现异常的代码 }[catch(异常类型 对象){ //异常处理 } catch(异常类型 对象){ //异常处理
阅读全文
摘要:/** * 多例设计模式:可以根据输入的参数不同返回不同的实例化对象 * 1、构造私有化 * 2、输入的参数不同 * 2017-09-11 * @author Junwei Zhu * */ class Sex { private String title ; private static fina
阅读全文
摘要:目录1、懒汉模式2、饿汉模式3、静态内部类4、反射攻击5、枚举类型6、序列化 1、懒汉模式 class LazySingleton{ //volatile防止指令重排 private static volatile LazySingleton SINGLETON ; //构造方法私有化 privat
阅读全文
摘要:/** * 临幸问题(代理设计模式) * 2017-08-25 * @author Junwei Zhu * */ //整个操作的核心主题 interface Subject { public void make();//整个临幸的核心功能 } class RealSubject implement
阅读全文
摘要:/** * 工厂类:用于连接接口和子类,尽量减少客户端的复杂性 * 2017-08-25 * @author Junwei Zhu * */ interface Fruit { public void eat(); } //工厂类:用于连接接口和子类,可以被客户端看到 class Factory {
阅读全文
摘要:目录抽象类接口抽象类和接口的区别 抽象类 抽象类就是指在普通类的结构里面增加抽象方法的组成部分。 拥有抽象方法的类一定属于抽象类,抽象类要使用abstract声明。 抽象类不能实例化。 抽象类必须有子类,子类如果不是抽象类,那么必须覆写抽象类的全部抽象方法。 任何类中存在static方法的时候可以不
阅读全文
摘要:封装 概念: 封装指的是将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。 封装实现的步骤: 1、修改属性的可见性来显示属性的访问,一般设为private 2、为属性创建操作和访问的public方法(setter/getter) 继承 Java
阅读全文
摘要:Java中有四种权限修饰符: public > protected > (default) > private public protected (default) private 同一个类(我自己) √ √ √ √ 同一个包(我邻居,子类) √ √ √ 不同包子类 √ √ 不同包非子类 √ 注意事
阅读全文
摘要:1、final定义的类不能再有子类(不能被继承)。 2、使用final定义的方法不能被子类覆写(重写)。 3、使用final定义的变量就变成了常量,常量必须在定义的时候设置好内容,并且不能修改。 全局常量:public static final声明的就是全局常量。 public static fin
阅读全文
摘要:重载(Overloading)与重写(Override)的区别? No. 区别 重载 重写 1 英文单词 Overloading Override 2 发生范围 发生在一个类里面 发生在继承关系中 3 定义 方法名称相同、参数类型和个数不同 方法名称相同,参数类型、个数相同,返回类型相同 4 权限
阅读全文
摘要:在SpringBoot 1.X 中,spring-boot-starter-jdbc启动器中默认使用的是org.apache.tomcat.jdbc.pool.DataSource作为数据源 在SpringBoot 2.X 中,spring-boot-starter-jdbc启动器中默认使用的是co
阅读全文
摘要:#1 新建SpringBoot项目 ##1.1 导入pom依赖文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o
阅读全文