Java
雨润泽林
最好的学习方法是分享
展开
-
什么是t-io和Netty?
Netty 是一个基于 Java NIO 的异步事件驱动网络应用框架,用于快速开发高性能、高可靠性的网络通讯程序。它提供了简单易用的 API,支持快速开发各种协议的客户端和服务器端应用,包括但不限于 HTTP、WebSocket、TCP、UDP 等。Netty 的设计理念是提供高性能、可扩展性和易用性,使得开发者能够轻松构建复杂的网络应用程序。Netty 在网络编程领域有着广泛的应用,被许多知名的开源项目和商业系统所采用。原创 2023-12-22 09:58:29 · 3361 阅读 · 0 评论 -
什么是fat jar?
在java中,通常将应用程序及其依赖jar一起打包到一个独立的jar中,就叫fat jar,它也叫uberJar。springboot的打包方式就是这样,将应用程序代码打包到BOOT-INF.classes,将依赖包打包到BOOT-INF.lib目录,以下是springboot的jar包的目录结构(目录生成命令是tree,没有的话可以自己安装哈):├── BOOT-INF│ ├── classes│ │ ├── application.properties│ │ └── co原创 2020-06-09 14:52:19 · 11636 阅读 · 0 评论 -
java实现代理的三种方式
静态代理JDK动态代理CGLib动态代理代理类图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5k0OYSOi-1582104681524)(/Users/lcp/Downloads/proxy-class.png)]静态代理实现方式/** * @projectName: thread-demo * @className: IHelloServi...原创 2020-02-19 17:32:41 · 299 阅读 · 0 评论 -
为什么 ConcurrentHashMap 的读操作不需要加锁?
为什么 ConcurrentHashMap 的读操作不需要加锁?我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢?ConcurrentHashMap的简介我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + R...转载 2019-12-20 14:47:56 · 698 阅读 · 0 评论 -
【JVM】HotSpot JVM内存管理和GC策略总结
hotspot jvm内存模型1.内存模型hotspot的内存模型很多地方都有类似总结,我也简单总结了一下,大概可以用下图表示: 关于几个分区的描述定义1.线程栈:线程创建是会为每个线程创建一个线程栈,线程栈里面会为每个方法调用创建一个栈帧。主要用于保存线程的当前运行状态。2.堆:用于存放运行时中生成的新对像。会划分成新生代和老年代。新生代里面又划分成了eden区、存活转载 2016-05-20 11:33:22 · 372 阅读 · 0 评论 -
将JSON数据转换成对象
controller类:@RequestMapping(value = "/sgsHelpSend/createOmsOrder", method = RequestMethod.POST) @ResponseBody public Object createOmsOrder(@RequestParam("memNo") final String memNo, final HttpS原创 2016-06-17 15:34:57 · 2144 阅读 · 0 评论 -
Java NIO和IO之间的主要差别
总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO NIO面向流 面向缓冲阻塞IO 非阻塞IO无 选择器面向流与面向缓冲Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向原创 2016-06-21 11:30:25 · 325 阅读 · 0 评论 -
mybatis如何在控制台打印执行的sql语句
一、需要mybatis和log4j的jar;二、然后在log4j.properties文件里面将下面的代码粘贴进去就可以了:log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout原创 2016-06-13 11:07:02 · 63285 阅读 · 8 评论 -
java Date和String相互转换
字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=new Date("2008-04-14"); 方法2: SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟 String str="2008-4-24"; java.util.Date date=原创 2016-06-23 16:22:50 · 477 阅读 · 0 评论 -
Java如何获取ISO8601时间格式
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); df.setTimeZone(TimeZone.getTimeZone("UTC")); String timestamp = df.format(new Date()); System.out.printl...原创 2019-06-14 12:11:32 · 3788 阅读 · 0 评论 -
面试题:说说HashMap的扩容过程?
这是一道阿里的面试题,考察你对HashMap源码的了解情况,废话不多说,咱们就直接上源码吧!jdk 1.7 源码void resize(int newCapacity) { Entry[] oldTable = table;//保存旧数组 int oldCapacity = oldTable.length; if (oldCapacity =...原创 2019-06-18 01:10:50 · 6556 阅读 · 1 评论 -
Integer面试连环炮以及源码分析
场景: 昨天有位朋友去面试,我问他面试问了哪些问题,其中问了Integer相关的问题,以下就是面试官问的问题,还有一些是我对此做了扩展。问:两个new Integer 128相等吗?答:不。因为Integer缓存池默认是-127-128;问:可以修改Integer缓存池范围吗?如何修改?答:可以。使用-Djava.lang.Integer.IntegerCache.hi...原创 2019-08-14 10:41:12 · 4171 阅读 · 2 评论 -
CocurrentHashMap和Hashtable的区别
集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延迟的电子商务系统来说非常的有用。这篇文章中将会看看ConcurrentHashMap和Hashtable之间的区别。这篇文章是HashMap的工作原理以及Has转载 2016-05-20 09:42:07 · 270 阅读 · 0 评论 -
Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm
JDK内置工具使用一、javah命令(C Header and Stub File Generator)二、jps命令(Java Virtual Machine Process Status Tool)三、jstack命令(Java Stack Trace)四、jstat命令(Java Virtual Machine Statistics Monitoring转载 2016-05-19 17:01:23 · 416 阅读 · 0 评论 -
提升你的Java应用性能:改善数据处理
许多应用程序在压力测试阶段或在生产环境中都会遇到性能问题。如果我们看一下性能问题背后的原因,会发现很多是由数据处理不当造成。数据处理在应用面对大数据量时是非常关键的。这里有一些实用的数据处理技巧可以帮助更好地提升Java应用程序性能。减少数据传输在任何Java应用程序中,方法调用要么是为调用方完成某项任务,要么是对输入数据进行处理。这两个目标都需要在调用者和处理方法之间进行数据交换转载 2016-05-19 16:56:38 · 378 阅读 · 0 评论 -
如何用maven创建一个web项目
第一步:点击右键,选择new→Project第二步:输入maven第三步:选择Maven Project,然后点击下一步第四步:再点击下一步第五步:Catalog 中选择 Internal,然后选中上面那个,点击next第六步:填写完成之后点击finish就ok了如果遇到web项目无法添加到tomcat,点击右键,选择Maven→Update原创 2016-05-25 15:00:51 · 467 阅读 · 0 评论 -
JAVA 中int... String...表示什么意思
例如:public class VarableParameter {/*** @param args*/ public static void main(String[] args) { System.out.println(add(2,3)); System.out.println(add(2,3,5)); } public static int ad原创 2016-05-03 13:46:23 · 2618 阅读 · 0 评论 -
使用java.util.List.subList
List subList(int fromIndex, int toIndex);它会返回下标fromIndex到toIndex的对象;原创 2016-05-03 17:20:19 · 470 阅读 · 0 评论 -
在eclipse中扩大tomcat、Jboss中的内存
第一步:双击你的服务器;第二步:点击open launch configuration;第三步:再选择arguments标签;第四步:在vm arguments框中添加: -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m第五步:点击apply原创 2016-05-06 14:05:16 · 627 阅读 · 0 评论 -
Java生成缩略图Thumbnailator
Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。http://code.google.com/p/thumbnailator/版本:thumbnailator-0.转载 2016-05-19 10:02:21 · 370 阅读 · 0 评论 -
Java中由substring方法引发的内存泄漏
在Java中我们无须关心内存的释放,JVM提供了内存管理机制,有垃圾回收器帮助回收不需要的对象。但实际中一些不当的使用仍然会导致一系列的内存问题,常见的就是内存泄漏和内存溢出内存溢出(out of memory ) :通俗的说就是内存不够用了,比如在一个无限循环中不断创建一个大的对象,很快就会引发内存溢出。内存泄漏(leak of memory) :是指为一个对象分配内存之后,在对转载 2016-05-19 11:28:23 · 311 阅读 · 0 评论 -
HashMap的工作原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入转载 2016-05-19 16:05:05 · 228 阅读 · 0 评论 -
深入分析ConcurrentHashMap
术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为转载 2016-05-19 16:10:34 · 297 阅读 · 0 评论 -
JVM性能优化
很多程序员在解决JVM性能问题的时候,花开了很多时间去调优应用程序级别的性能瓶颈,当你读完这本系列文章之后你会发现我可能更加系统地看待这类的问题。我说过JVM的自身技术限制了Java企业级应用的伸缩性。首先我们先列举一些主导因素。l 主流的硬件服务器提供了大量的内存l 分布式系统有大量内存的需求,而且该需求在持续增长l 一个普通Java应用程序所持有的对空间大概在1GB~4GB,转载 2016-05-19 16:35:21 · 503 阅读 · 0 评论 -
JVM调优
JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间、 减少Full GC次数。 代大小调优 最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold、-转载 2016-05-19 16:44:43 · 312 阅读 · 0 评论 -
Tomcat性能优化
一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。【适用场景】任何项目。 二、Java虚拟机调优应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。JD转载 2016-05-19 16:54:09 · 378 阅读 · 0 评论 -
Spring MVC 通过@Value注解读取.properties配置
第一步:application.properties配置文件中建立内容:ios.test.appKey=824f1694e205e2973933482cios.test.masterSecret=206399b1ce5e75236bcf0490第二步:配置applicationContext-commom.xml文件: classpath:原创 2016-04-25 15:54:35 · 3485 阅读 · 0 评论