- 博客(23)
- 收藏
- 关注
原创 类加载器
类加载器类加载器作用:将class文件字节码内容加载到内存中,并将这些静态数据转换为方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口一个类的生命周期:加载,连接,初始化。连接中分验证,准备,解析类加载到内存中需要使用类加载器根类加载器 Bootstrap扩展类加载器Extension 继承根类加载器系统类加载System(应用类加载器) 继承扩展类加载器自定义类加载器ClassLoader 继承系统类加载器双亲委派机
2020-12-31 09:37:36
106
原创 动态代理
动态代理反射的应用:动态代理动态代理的好处:我们只需要传入需要代理的对象,即被代理对象,就会自动的创建相应的代理类对象,通过代理类对象操作被代理类对象在动态代理之前,先来了解一下静态代理模式public interface ClothFactory { void produceCloth();}代理类public class ProxyClothFactory implements ClothFactory { //代理模式的关键代码 private ClothFa
2020-12-31 09:35:53
109
原创 springmvc:拦截器
拦截器前段时间,在csdn上查询有关拦截器的知识,但是很多文章都不全部,所以在这里我将大家写的进行了一下整理。拦截器和过滤器的区别拦截器是基于Java的反射机制的,而过滤器是基于函数回调。拦截器依赖web框架,过滤器依赖于servlet容器。拦截器配置一般在SpringMVC的配置文件中,使用Interceptors标签;过滤器配置在web.xml,使用fileter标签拦截器只能对action(controller)请求起作用,而过滤器则可以对几乎所有的请求起作用。在ac
2020-12-31 09:21:16
303
原创 反射的相关知识
反射反射体现运行时的动态性public class NewInstance1 { //体现反射的动态性 public static void main(String[] args) throws Exception { int i = new Random().nextInt(3); String classPath=""; switch (i){ case 0: classPath=
2020-11-30 20:08:35
123
原创 DbUtils框架
DbUtils框架DbUtils操作简单,功能强大;大部分功能都由三大核心实现:DbUtils工具类,ResultSetHandler接口,QueryRunner类DbUtils工具类:关闭连接,加载驱动ResultSetHandler接口:处理结果集常用的实现类QueryRunner类:增删改查导jar包 DbUtiles的jar包简单封装DBUtilspublic class DBUtils { //创建连接池 //我这里连接的是C3P0连接池,所以需要导C3P0的
2020-11-24 15:36:34
115
原创 获取文本上每个字符出现的次数
获取文本上每个字符出现的次数方法:遍历文本每一个字符;字符及出现的次数保存在Map中;将Map中数据写入文件import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.util.HashMap;import java.util.Map;import java.util.Set;public class WordCount { public static v
2020-11-24 15:34:30
417
原创 集合遍历,集合长度
集合遍历集合都可以用for循环遍历,Set接口的集合不但可以for循环遍历,还可以使用迭代器。Collection集合遍历List基础知识collection是单列集合Vector初始容量是10,扩容增量:原来的1倍Vector线程安全,但是速度慢ArrayList初始容量是10,扩容增量:原来容量*0.5+1ArrayList线程不安全,查询速度快List集合遍历List接口集合可以存储重复的数据,有下标List接口集合的遍历:for循环遍历public class ArrayL
2020-11-19 21:31:11
557
1
原创 判断是否是回文
public class Test02 { public static void main(String[] args) { Integer i = 32123; palindrome(i); } public static void palindrome(Object object) {//传入一个Object对象,可以传基本数据类型也可以传字符串 String string = object.toString();
2020-11-12 09:58:40
411
2
原创 找出1-100的质数
// 输出1-100中的质数 质数:只能被1和它本身整除 boolean isFlag = true; //标识i是否被j除尽,除尽就修改其值 for (int i = 2; i <= 100; i++) { // 遍历2-100 for (int j = 2; j < i; j++) { // 被除数 被除数从2开始到它本身的前一个数字,即i-1 if (i % j == 0) {
2020-11-11 21:13:30
643
原创 倒置一个整数
倒置整数比如:倒置前 int a=123654倒置后 int a1=456321public class Test02 { public static void main(String[] args) { Integer a=542163600;//自动装箱 String str = a.toString(); int len=str.length();//这两步是为了得到存储单个数字数组的长度 int[] rese
2020-11-11 19:42:51
490
2
原创 希尔排序
希尔排序和插入排序差不多,插入排序是步长为1的希尔排序需要看解析请看插入排序插入排序public class ShellSort { public static void main(String[] args) { int[] arr = {1,3,5,6,-5,9,-6,}; shellSort(arr); System.out.println(Arrays.toString(arr)); } public stati
2020-11-10 22:17:25
95
原创 插入排序
public class Test01 { public static void main(String[] args) { int[] arr = {23,65,-54,5,54,32,-5}; insertSort(arr); System.out.println(Arrays.toString(arr)); } public static void insertSort(int[] arr) { //
2020-11-10 22:14:42
100
原创 MySQL数据库表的约束
文章目录主键约束第一种第二种第三种非空约束唯一性约束AUTO_INCREMENT约束默认值约束外键约束第一种第二种删除外键主键约束第一种create table student ( id int primary key, name varchar(50) );第二种create table student ( id int, name varchar(50), primary key (id) );第三种create table student(
2020-11-10 22:12:30
96
原创 序列化和反序列化(ObjectOutputStream,ObjectInputStream)
链接: [link](https://www.csdn.net/).图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZ
2020-11-09 18:56:53
674
1
原创 运输层中的TCP协议(Socket,SocketServer)
运输层中的TCP协议TCP协议是面向连接的协议,意思就是只有先连接,再通信先启动服务端,再启动客户端服务端/*我是和自己通信,所以选的是本机IP地址,要和其他人电脑通信,可以使用InetAddress.getByName(String name)返回一个InetAddress,但是需要在同一个局域网之中*/public class Server { public static void main(String[] args) throws Exception { S
2020-11-06 13:57:49
259
原创 运输层中的UDP协议(DatagramSocket,DatagramPacket)
发送方public class Send { public static void main(String[] args) throws Exception { //端口号 int port=10086; DatagramSocket socket = new DatagramSocket(); String str = "I love you";//传输的消息 byte[] bytes
2020-11-06 11:47:28
344
原创 观察者模式
文章目录观察者模式观察者接口观察者接口实现类给观察者发信息的接口(抽象主题)抽象主题的实现类测试观察者模式观察者接口public interface Observer { public void receiveMessage(String message);}观察者接口实现类public class ObserverImpl implements Observer { private String name; public ObserverImpl(String na
2020-11-05 10:58:20
66
原创 寻找字符串的最长子串
/** * * 找出两个字符串的最长公共子串 * 思路 * 找出短的那个字符串 然后通过削短的字符串 和长的字符串作对比 * 比如 * 削一个字符 有两种情况 削前面 或者削后面 * 削两个字符 有三种情况 削两个前面 或者削两个后面 或者一边削一个 * 削三个字符 有四种情况 以此类推.... */ //方法一public class Test08 { public static void main(String[] args) { String s
2020-11-05 10:55:35
1531
原创 单例模式
两种单例模式//饿汉式public class Singleton { //单例模式 一个类创建一个对象 这个类创建的对象都是同一个 private final static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance() { return instance;
2020-11-05 09:48:19
69
原创 判断两个文件内容是否相同(FileInputStream)
判断两个文件内容是否相同FileInputStreampublic class Test01 { public static void main(String[] args) throws Exception { FileInputStream fileInputStream1 = new FileInputStream("F:\\a\\copy.txt"); FileInputStream fileInputStream2 = new FileInputStre
2020-11-05 09:44:43
876
原创 递归删除一个文件夹和计算文件夹大小
递归的删除一个文件夹public class Test01 { public static void main(String[] args) { File file = new File("F:\\a"); deleteDirectory(file); } public static void deleteDirectory(File file) { if(file!=null) { if(file.isFil
2020-11-05 09:40:37
91
2
原创 修饰者模式
文章目录修饰者模式被修饰的原始抽象类被修饰原始抽象类的实现类抽象装饰者抽象装饰类的实现类测试修饰者模式被修饰的原始抽象类不是接口public abstract class AbstractMilkTea { public abstract String descript(); public abstract double price();}被修饰原始抽象类的实现类继承抽象类public c
2020-11-05 09:11:21
279
原创 创建线程
文章目录三种创建线程的方法Thread方法创建使用Runnable创建线程Callable创建线程线程的六种状态六种状态的相互转换线程的常用方法getNamesleepjoin线程优先级守护线程isAlivegetState三种创建线程的方法Thread方法创建//子类继承Thread并重写run()public class MyThread extends Thread { @Override public void run() { super.run();
2020-11-04 22:54:23
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人