随笔分类 - Java
摘要:需求:Java和C#进行数据交互,互相采用AES/CBC/PKCS5Padding进行加解密 Java加密和解密的代码如下: 这里面有一个情况,就是构建密钥生成器,C#里面有一个类库BouncyCastle.Crypto.dll完全可以把Java的代码翻译过来,但是翻译过来就卡在了密钥生成器这里,大
阅读全文
摘要:Java代码: C#代码: 无论数据的交互过程如何Base64怎么的都不重要,因为数据的传输和加密都是操作的byte[]。因此我们完全可以忽略掉Base64而直接对byte[]进行相关的操作。
阅读全文
摘要:我们通过Java进行RSA加密的时候,可能会出现如下问题: 那么要怎么解决呢,就是分段加密,代码如下: 主方法的代码如下: 这样就可以实现RSA超过117byte长度的数据加密了
阅读全文
摘要:使用场景:比如有一个类,有40个属性字段,然而这些属性字段并不是必须的,我们可以随意组合给这些属性赋值,那么我们可以采用两种方式。 1.构造函数。明显这种方式会出现无数的参数组合,肯定不行 2.实例化单独赋值。实例化一个对象之后单独给每个属性赋值。这种方式是可以的,只是代码量还是比较大。 那么我们还
阅读全文
摘要:下载lombok 下载地址:https://projectlombok.org/downloads/lombok.jar 或者访问官网下载 https://projectlombok.org/ 安装完成 这样已经可以使用了! 查看文件“eclipse.ini”。里面最后一行应该是:-javaagen
阅读全文
摘要:一般情况下,log4j的配置文件是log4j.properties。但是每次我们修改了配置文件之后程序并不会自动去加载,而需要我们去重启程序。那么怎么样才能让程序不用重启就监听到变化呢。代码如下: 1.定义一个循环,每4秒钟就打印debug、info、warn、error的日志 2.获取文件使用了s
阅读全文
摘要:Java操作zookeeper总共有三种方式: 1.原生的Java API 2.zkclient 3.curator 第一种实现代码: pom.xml 示例的java代码如下: package zook; import java.io.IOException; import java.util.co
阅读全文
摘要:这里涉及到Java的多线程并发知识,以及线程池相关的知识。就不在此说明了。具体说说CompletionService的应用场景和使用方法。 比如我们有10个线程需要丢到线程池里面去执行,然后把10个线程的执行结果返回回来处理。如果没有使用CompletionService,我们的实现方式如下。首先创
阅读全文
摘要:Netty可以通过一些handler实现简单的http服务器。具体有三个类,分别是HttpServer.java、ServerHandlerInit.java、BusiHandler.java。 具体代码如下: HttpServer.java package cn.enjoyedu.server;
阅读全文
摘要:netty就是一个高性能的NIO框架,用于java网络编程。下面说说思路: 服务端: 开启通道、设置网络通信方式、设置端口、设置接收请求的handler、绑定通道、最后关闭 客户端: 开启通道、设置网络通信方式、设置服务器ip和端口、设置处理数据的handler、连接服务器、最后关闭。 pom.xm
阅读全文
摘要:Java中有那么一些类,是以Atomic开头的。这一系列的类我们称之为原子操作类。以最简单的类AtomicInteger为例。它相当于一个int变量,我们执行Int的 i++ 的时候并不是一个原子操作。而使用AtomicInteger的incrementAndGet却能保证原子操作。具体的类如下:
阅读全文
摘要:要实现有返回值的多线程,具体代码如下: 1.FutureTask实现了接口Runnable,所以可以传入到线程中执行 2.futureTask.get()是一个阻塞方法 3.Callable<Integer>中的Integer表示返回的数据类型
阅读全文
摘要:fork-join我们可以理解为分而治之,就是说当一个任务非常大的时候,我们可以按照一定的业务需求拆分为若干个小的任务,最后把这些小的任务再聚合起来。 下面就通过fork-join实现一个从1加到100的多线程实现方式。 首先定义类SumTask,必须继承RecursiveTask<Integer>
阅读全文
摘要:今天收到领导的一个任务,说是图片太大导致服务器那边无法解析,要求图片大小大于102*126就压缩大小为102*126.同时文件是以Base64字符串的形式传过来的。具体压缩方法如下:
阅读全文
摘要:先不说那么多,把Java代码贴出来吧。 我们知道。在mysql中,如果我们修改一条数据的原始值和修改后值是一致的,那么就会返回影响的行数为0 很好,那么执行上面java的代码,理论上就会返回0。但是经过多次执行、多次测试,返回的始终是1。这就让人很不解了,后来翻看了相关资料,原来jdbc默认返回的是
阅读全文
摘要:一、普通thread 二、TimerTask方式 三、ScheduledExecutorService方式 个人比较偏向于最后一种方式
阅读全文
摘要:一、首先采用org.springframework.jdbc.datasource.DriverManagerDataSource类进行实现 1.applicationContext.xml配置如下: 2.Java的代码如下: 说明: ①mysql的url配置中需要注意编码和时区,不然会出现报错。同
阅读全文
摘要:1.静态代理,这种不用说最不靠谱。每个类一个代理,代码量很大。 2.JDK代理。使用java.lang.reflect.Proxy进行代理,但是被代理的类必须要实现接口。 3.Cglib代理。不用实现接口,通过模拟继承的方式实现,但是必须要引用第三方jar包,pom.xml如下: 在Spring中首
阅读全文
摘要:Java中对于键值对,我们习惯使用类HashMap,使用方式:Map<String, String> result=new HashMap<String,String>(); 但是这种使用的键Key是区分大小写的,也就是说Name和name会被视为不同的键Key。如果我们需要不区分大小写。那么就要使
阅读全文
摘要:首先pom.xml如下: Java代码如下: 说明: 1.这里只是一个demo,没有对异常这些做有效的处理 2.SFTP不区分主动模式和被动模式 3.完毕之后记得关闭连接 4.服务端的sftp用的是freeSSHd软件 5.windows可通过FreeSSHd部署sftp服务,也可通过Serv-U部
阅读全文