随笔分类 -  java

上一页 1 ··· 3 4 5 6 7 8 下一页
关于java语言的博客
摘要:在java中直接执行python语句 添加maven依赖 <dependency> <groupId>org.python</groupId> <artifactId>jython-standalone</artifactId> <version>2.7.1</version> </dependen 阅读全文
posted @ 2020-10-18 16:25 strongmore 阅读(431) 评论(0) 推荐(0) 编辑
摘要:lambda表达式序列化后我们可以得到实现接口和实现方法的信息。 public class Client { public static void main(String[] args) { SerializedLambda serializedLambda = resolve(User::getU 阅读全文
posted @ 2020-09-04 23:30 strongmore 阅读(1723) 评论(0) 推荐(1) 编辑
摘要:介绍 ByteBuddy也是一个代码生成和操作的类库,可以在运行时动态创建和修改class,底层也是ASM库,相比于cglib,javassist,Bytebuddy在性能上具有优势,Hibernate的懒加载和mockito测试框架都使用到了Bytebuddy。官网 实现动态代理 maven依赖 阅读全文
posted @ 2020-08-25 23:32 strongmore 阅读(3108) 评论(0) 推荐(1) 编辑
摘要:介绍 Javassist 也是一个字节码框架,和其他字节码框架不同的是,它提供了两种层级的API,源层级和字节码层级,源层级不需要对字节码规则了解太多就可以操作。Hibernate的懒加载就使用到了Javassist。官网 使用Javassist提供的动态代理接口实现 maven依赖 <depend 阅读全文
posted @ 2020-08-23 09:06 strongmore 阅读(1927) 评论(0) 推荐(0) 编辑
摘要:介绍 cglib是一个强大的,受欢迎的,高性能的代码生成类库,它的底层就是asm(字节码框架),可以用来动态修改class和创建class,Spring AOP实现动态代理的一种方式就是cglib,hibernate使用cglib对持久化对象创建代理。 实现动态代理 引入maven依赖 <depen 阅读全文
posted @ 2020-08-15 21:50 strongmore 阅读(2884) 评论(0) 推荐(0) 编辑
摘要:介绍 ASM是一个java字节码操纵和分析框架,它可以直接以二进制的形式修改class或动态生成class。官网 使用 接下来我们使用asm框架实现一个和JDK动态代理同样的功能。 引入maven依赖 <dependency> <groupId>org.ow2.asm</groupId> <arti 阅读全文
posted @ 2020-08-06 22:54 strongmore 阅读(1200) 评论(0) 推荐(0) 编辑
摘要:介绍 代理是一种设计模式,提供了对目标对象另外的访问方式,通过代理对象来访问目标对象,这样可以扩展目标对象的功能,对目标对象功能做控制。 类图如下 静态代理 定义一个目标对象和代理对象都需要实现的接口 /** * 可以唱歌的 */ public interface Singable { /** * 阅读全文
posted @ 2020-08-04 23:40 strongmore 阅读(460) 评论(0) 推荐(0) 编辑
摘要:本地变量类型推断 public class Client { public static void main(String[] args) { var name = "lisi"; System.out.println(name); List<String> names = Arrays.asLis 阅读全文
posted @ 2020-08-03 23:08 strongmore 阅读(1033) 评论(0) 推荐(0) 编辑
摘要:介绍 MapStruct是一个可以生成类型安全的,高性能的且无依赖的 JavaBean 映射代码的注解处理器,可以在编译期生成对应的mapping,既没有BeanUtils等工具使用反射的性能问题,又免去了自己写映射代码的繁琐。 使用 简单转换 maven依赖 <dependency> <group 阅读全文
posted @ 2020-08-01 23:27 strongmore 阅读(4276) 评论(0) 推荐(0) 编辑
摘要:今天使用IDEA导入一个maven项目的时候遇到了一个问题,idea报错 Unable to import maven project: See logs for details 经过上网查资料发现可以查看idea的详细日志, 错误日志如下 2 errors java.lang.RuntimeExc 阅读全文
posted @ 2020-07-30 09:02 strongmore 阅读(7264) 评论(0) 推荐(1) 编辑
摘要:今天想将项目的jdk版本从8升级到11,maven编译时遇到了下面的问题 错误日志 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile 阅读全文
posted @ 2020-07-29 20:10 strongmore 阅读(8821) 评论(0) 推荐(1) 编辑
摘要:加密结果直接转字符串 public class Client { // 加密算法 private static final String BLOWFISH = "Blowfish"; // 加密秘钥 private static final String SECRET = "test"; publi 阅读全文
posted @ 2020-07-26 14:53 strongmore 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:lambda表达式 public class Client { public static void main(String[] args) { Arrays.asList("hello", "world").forEach(a -> { System.out.println(a); System. 阅读全文
posted @ 2020-07-26 13:10 strongmore 阅读(367) 评论(0) 推荐(0) 编辑
摘要:介绍 序列化就是将对象转换成字节序列,反序列化就是将字节序列转换成对象。 使用 默认序列化和反序列化 public class Client { public static void main(String[] args) { User user = new User(); user.setUser 阅读全文
posted @ 2020-07-25 12:42 strongmore 阅读(247) 评论(0) 推荐(0) 编辑
摘要:switch对字符串的支持 public class Client { public static void main(String[] args) { String name = "lisi"; switch (name) { case "lisi": System.out.println(nam 阅读全文
posted @ 2020-07-22 22:33 strongmore 阅读(288) 评论(0) 推荐(0) 编辑
摘要:介绍 MethodHandler,翻译过来就是方法句柄,是java7提供的jsr292的一部分,为了支持动态方法的调用,主要是java.lang.invoke包。 使用 public class Client { public static void main(String[] args) thro 阅读全文
posted @ 2020-07-22 18:57 strongmore 阅读(3202) 评论(0) 推荐(0) 编辑
摘要:介绍 java5之前我们可以通过java提供的tools.jar来操作java编译器,java6提供了新的API,让我们可以更方便的调用。包名为javax.tools。 使用 通过文件编译 String filePath = "D:\\Client.java"; //获取java编译器 JavaCo 阅读全文
posted @ 2020-07-20 23:05 strongmore 阅读(2958) 评论(1) 推荐(2) 编辑
摘要:介绍 jdk1.6提供了对JavaScript的支持,使用的js引擎为Rhino,jdk1.8替换成了Nashorn。 使用 public class Client { public static void main(String[] args) throws IOException, Script 阅读全文
posted @ 2020-07-18 13:48 strongmore 阅读(800) 评论(0) 推荐(0) 编辑
摘要:介绍 在JDK1.5以后,我们可以使用agent技术构建一个独立于应用程序的代理程序(即为Agent),用来协助监测、运行甚至替换其他JVM上的程序。使用它可以实现虚拟机级别的AOP功能。Agent分为两种,一种是在主程序之前运行的Agent,一种是在主程序之后运行的Agent(前者的升级版,1.6 阅读全文
posted @ 2020-07-12 16:34 strongmore 阅读(733) 评论(0) 推荐(0) 编辑
摘要:介绍 JavaPoet 是一个用来生成 .java源文件的Java API。 使用 maven依赖 <dependency> <groupId>com.squareup</groupId> <artifactId>javapoet</artifactId> <version>1.11.1</vers 阅读全文
posted @ 2020-07-12 11:11 strongmore 阅读(1044) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页