java
文章平均质量分 54
运维小菜
加油
展开
-
springAOP原理--java动态代理之java.lang.reflect.Proxy.newProxyInstance
Proxy.newProxyInstance的三个参数:1.ClassLoader loader:加载代理对象的类加载器2.Class<?>[] interfaces:代理类需要实现的接口,返回值类型即为该接口的类型3.InvocationHandler h:调用处理器,通过重写其invoke方法扩展被代理对象的方法内容具体使用:1.定义接口UserDaopackage com.my.dynamicProxy;public interface UserDao { int原创 2021-07-16 16:32:53 · 355 阅读 · 0 评论 -
java--Spring5下载与使用入门----1
目录一、下载spring5二、创建代码工程三、开始使用spring1.创建一个类用于测试,**必须有无参构造器**2.创建spring配置文件3.spring测试一、下载spring5下载地址:https://repo.spring.io/ui/native/libs-release-local/org/springframework/spring/5.2.6.RELEASE下载解压后:二、创建代码工程1.idea创建普通java工程:2.导入spring基础jar包与commons-l原创 2021-07-09 15:30:57 · 298 阅读 · 0 评论 -
一文读懂zookeeper,安装,集群,配置,节点操作,Java接口,超详细
一、安装1.zookeeper包的下载地址:zookeeper-3.5.72.解压:tar -xvf apache-zookeeper-3.5.7-bin.tar.gz3.本文中的@{ZK_HOME}:代表zookeeper的主目录,即tar包的解压目录,目录结构如下:解压完成即安装完成!二、配置文件解读:@{ZK_HOME}/conf下的zoo_sample.cfg即为zookeeper的主要配置文件,安装时需改名为zoo.cfg;解压后配置文件初始状态如下(省略注释):tickTi原创 2021-06-30 20:33:45 · 452 阅读 · 4 评论 -
java--xml解析--dom4j代码化详解
dom4j代码示例package xml;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom原创 2021-06-24 15:47:06 · 80 阅读 · 0 评论 -
java--线程池--创建线程池的几种方式与线程池操作详解
本文目录一、创建线程池与执行任务:ExecutorService接口的Executor实现类1.普通线程池,使用submit执行1)创建线程池与执行2)代码示例2.延时与定义执行的线程池,使用schedule执行1)创建线程池与执行2)代码示例3.ExecutorService接口的其他操作1)shutdown()与shutdownNow()2)submit的返回值二、线程池的实现原理三、本文使用到的类1.MyThreadFactory2.Tasktips:使用junit测试多线程会有问题,建议使用mai原创 2021-06-14 23:24:15 · 931 阅读 · 2 评论 -
java--线程与多线程(Callable与Runnable,synchronized)
目录一、创建线程的方式1.继承Thread类与线程的常用方法2.实现Runnable接口3.实现Callable接口二、解决线程安全问题1.同步代码块2.同步方法3.与synchronized 相关的三个方法4.Lock锁方式(JDK5)(附)死锁示例一、创建线程的方式1.继承Thread类与线程的常用方法功能类继承Thread实例化功能类对象功能类对象.start()package thread;public class ThreadTest { public static原创 2021-06-13 23:47:24 · 194 阅读 · 0 评论 -
java--NIO详解--Buffer、channel与网络编程
目录一、buffer--缓冲区的基本使用1.核心与基础用法2.实现字符集转换二、Channel的基本使用三、socketChannel网络编程--阻塞式四、socketChannel网络编程--非阻塞式1.Client客户端类2.Server服务端一、buffer–缓冲区的基本使用1.核心与基础用法初始化缓冲区:XXXBuffer.allocate(int capacity)数据加入缓冲区:buffer.put(byte[] data)切换为读模式:byteBuffer.flip()读取缓冲区原创 2021-06-13 18:02:33 · 1274 阅读 · 3 评论 -
java--关于new对象的时候有继承关系的类各种成员的加载顺序的超级详细解释
文章目录一、无继承关系(直接继承Object)的类加载过程:1.静态成员是由类加载器加载的2.代码块与变量按代码中出现的顺序进行初始化3.new对象时只会进入一个相应的构造器二、继承关系下的类加载过程:1.先加载父类静态成员,后加载本类静态成员2.终极测试3.最后的结论如果在网上搜索“类初始化顺序”,一般的答案为:父类静态->子类静态->父类代码块->父类构造->子类代码块->子类构造但这种简单的回答适合死记硬背但不适合理解下面给出最详细的解释:一、无继承关系(直原创 2021-06-10 12:37:42 · 458 阅读 · 2 评论 -
java--java8特性--StreamAPI与Optional容器类详解
这里写目录标题Optional容器类二、StreamAPI的使用二级目录Optional容器类package stream;import java.util.Optional;import org.junit.Test;public class OptionalTest { @Test public void optionalTest(){ Employee employee = new Employee(1007, "任正非", 26, 4333.32);原创 2021-06-09 16:21:08 · 139 阅读 · 0 评论 -
本博客中常用类与集合
文章目录1.Employee2.EmployeeData1.Employeepackage stream;public class Employee implements ComparableEmployee{ private int id; private String name; private int age; private double salary; public double getSalary() { return salary; } public Strin原创 2021-06-09 16:15:28 · 84 阅读 · 0 评论 -
java--lambda表达式进阶版--方法引用与构造器引用
目录一、方法引用二、构造器引用三、数组引用一、方法引用方法引用的几种形式:方法引用与原始实现接口的方式比较:[对象::实例方法]:接口中的方法的方法体只有一行,且为对象.实例方法()的形式,此实例方法的参数列表一样,返回值类型一样[类::静态方法]:接口中的方法的方法体只有一行,且为类.静态方法()的形式,此静态方法的参数列表一样,返回值类型一样[类::实例方法]:接口中的方法的方法体只有一行,且为对象.实例方法(*)的形式,此对象即为接口方法的第一个参数package methodR原创 2021-06-08 23:26:41 · 120 阅读 · 0 评论 -
java--java8特性--Lambda表达式详解
Lambda表达式是一个函数式接口的匿名实现对象函数式接口:只有一个方法的接口,可以使用@FunctionalInterface注解例如本文定义的三个接口,都是函数式接口:@FunctionalInterfaceinterface LambdaT1{ void run();}@FunctionalInterfaceinterface LambdaT2{ void run(String name);}@FunctionalInterfaceinterface Lam.原创 2021-06-08 17:00:08 · 90 阅读 · 0 评论 -
java设计模式--代理模式详解--静态代理与动态代理
java设计模式之代理模式目录静态代理动态代理静态代理静态代理实现过程概述:定义接口,这是一个代理类与被代理类都实现的接口定义被代理类,实现共同接口,实现接口方法定义代理类,实现共同接口,实现接口方法,方法内调用被代理类同名方法以被代理对象为参数,构建代理人对象代理人对象执行实现的接口方法// 1.定义接口,这是一个代理类与被代理类都实现的接口interface Buyer{ public void buy();}// 2.被代理类,实际需求人class Prin原创 2021-06-08 15:11:26 · 141 阅读 · 0 评论 -
java反射基础详解--使用反射获取一切
本节目录使用反射获取类结构使用反射获取类结构package reflectioin;import org.junit.Test;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ReflectionTest { @Test public void reflectTest() throws Excep原创 2021-06-07 23:29:16 · 127 阅读 · 0 评论 -
java--网络编程(TCP与UDP编程、URL编程详解)
java网络编程TCP网络编程示例UDP网络编程示意URL编程TCP网络编程示例package inetTest;import org.junit.Test;import java.io.*;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;public class InetAddressTest { @Test public void client() {原创 2021-06-06 22:06:22 · 104 阅读 · 2 评论 -
java--File类与IO流详解
import java.io.File;import java.io.IOException;import java.util.Arrays;import java.util.Date;class JavaStudy { public static void main(String[] args) throws IOException { System.out.println("********File实例化********"); // File(Strin原创 2021-06-06 19:18:05 · 207 阅读 · 0 评论 -
java--泛型的使用详解--泛型结构使用的几种情况
代码中主要包含:1、定义泛型类以及实例化2、定义泛型方法以及调用3、泛型继承相关的说明4、泛型通配符的使用package test;import javax.xml.soap.SAAJMetaFactory;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.List;public class Test { public static vo原创 2021-06-03 22:24:21 · 161 阅读 · 0 评论 -
java--Map接口与HashMap等各实现类详解、Properties读取配置文件、Collections工具类
一、Map原理:Map中以键值对存储,一个key:value键值对为一个Entry对象所有key使用Set存储,无序不重复,key的类需重写equals()与hashCode(),用于一些判断方法,TreeMap使用红黑树,使用定制排序或者自然排序所有value使用Collection存储,无序可重复,value的类需重写equals(),用于比较二、HashMap常用方法// 先po上输出结果:*********增改**********put: {AA=null}putAll原创 2021-06-03 19:09:12 · 172 阅读 · 0 评论 -
java--Collection接口与List、Set接口详解
一、几种接口或类的关系二、常用方法概览1、Collection接口常用方法:增add(Object obj)addAll(Collection c)删remove(Object obj)removeAll(Collection c)clear()遍历增强for循环:for (Object obj:list) {System.out.println(obj);}迭代器:Iterator iterator = list.iterator();wh原创 2021-06-03 02:07:31 · 247 阅读 · 0 评论 -
java--注解详解--元注解与自定义注解--反射获取与使用注解信息
一、JDK内置注解@Override,只能用于子类方法,表示重写父类方法@Deprecad,表示过期@SuppressWarning,抑制编译器警告,不会编译到.class文件中二、自定义注解简单版,无成员,仅作为标识:// 定义注解public @interface MyAnnotation {}// 使用注解@MyAnnotationclass AnnotationTest {}有成员的注解:// 定义注解public @interface MyAnnotati原创 2021-05-31 15:31:54 · 285 阅读 · 0 评论 -
java-enum枚举类详解
一、自定义枚举类,私有化属性,静态枚举对象且finalclass EnumSelf { private final String name; private final int age; public static final EnumSelf ZJL = new EnumSelf("周杰伦", 40); public static final EnumSelf WLH = new EnumSelf("王力宏", 40); public static final E原创 2021-05-31 11:04:05 · 332 阅读 · 0 评论 -
java比较器--Comparable与Comparetor
一、Comparable 自然排序类实现java.lang.Comparable接口,重写compareTo方法,返回int型package test;import java.util.Arrays;public class Test { public static void main(String[] args) { Computer[] computers = new Computer[4]; computers[0] = new Computer原创 2021-05-29 22:31:44 · 432 阅读 · 0 评论 -
java--String与StringBuffer/StringBuilder常用方法
String类常用方法/** * 功能描述 * * @author yunweixiaocai * @since 2021-04-20 */import java.io.UnsupportedEncodingException;import java.util.Scanner;import java.util.Arrays;import org.w3c.dom.ls.LSOutput;class JavaStudy { static String str = " I a原创 2021-05-28 15:33:47 · 105 阅读 · 0 评论 -
idea中的java非Maven项目导出jar包--执行jar包
1、java项目导出jar包前提:确认java项目有main函数且可正常运行idea中依次点击File–>Project Structure–>Project Settings–>Artifacts点击“+”添加JAR,选择从module中添加选择要编译打包的类(类中有main方法才会显示),然后所有窗口点ok或apply,然后关闭依次点击Build–>Build Artifacts,在在跳出来的小窗口选择刚刚命名的jar包名,点击build,然后去上图jar包路径中原创 2021-05-22 21:22:32 · 808 阅读 · 0 评论 -
JDCB连接mysql与增删改查基本操作
JDCB连接mysql与增删改查基本操作连接数据库的几种方式我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的 KaTeX数学公式 语法;增加了支持甘特图的mermaid语法1 功能;增加了 多原创 2020-08-16 20:55:13 · 675 阅读 · 3 评论