java
文章平均质量分 53
嘿丶小伙计
http://my.csdn.net/my/favorite
展开
-
常用JVM 启动参数解析
截取了生产服务器上的JVM启动参数,都是前人踩过无数坑总结出的精华。这里逐个介绍下-server ①-Xms512m ②-Xmx1024m ③-XX:PermSize=256m ④-XX:MaxPermSize=512m ⑤-XX:SurvivorRatio=6 ⑥-XX:+DisableExplicitGC ⑦-XX:MaxTenuringThreshold=5 ⑧-XX:+UseConcMarkSweepGC ⑨-XX:+UseParNewGC ⑩-XX:+UseCMSC转载 2022-03-16 17:31:23 · 1248 阅读 · 0 评论 -
多重if替换方式
public class Test { public static void main(String[] args) { List<Order> list = Lists.newArrayList(); Order order = null; Optional.ofNullable(order).ifPresent( list::add ); System.out.println(JSON.toJSONString(l原创 2021-06-28 10:16:17 · 454 阅读 · 0 评论 -
SpringMVC接收复杂集合参数
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。以下列举接收List、List、List>转载 2017-09-04 16:42:15 · 2408 阅读 · 0 评论 -
Log4j打印日志添加请求ID(包含多线程)
多种实现方式在多线程环境下,我们可能需要输出很多信息,每个线程产生的日志信息可能都是类似的,我们如何区分出哪些信息是同一个线程输出的呢?其实log4j已经提供了多种实现方式:1.使用PatternLayout,在设定输出格式的时候增加%t参数,这样会输出各个线程的线程名称,这样我们就可以根据线程名称区分哪些内容是同一个线程输出出来的。2.使用NDC,也是基于PatternLayou转载 2017-08-21 11:05:08 · 7618 阅读 · 0 评论 -
如何修改request的parameter
@Componentpublic class UserBehaviorFilter extends AbstractWebFilter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, Se原创 2017-07-31 16:34:01 · 974 阅读 · 0 评论 -
JDK源码调试
1.首先遇到了一个问题line unavailable,然后通过以下方式解决:http://blog.csdn.net/xuefeng0707/article/details/8738869 对于想了解JDK源码的同学来说,通过调试JDK源码来学习是一个常用的方法。如果调试时,不能进入JDK源码,大部分错误都是line unavailable,则需要设置一番。【Wi转载 2017-06-23 12:12:16 · 435 阅读 · 0 评论 -
包装接口供第三方调用方案
接口定义入参:客户ID(clientId):比如StudentService服务ID(serviceId):比如getAge参数集合(paramsJson):比如{"name":"zhangsan", "studentId":"T001"}接口返回值:{ "error": "0", "errorMsg": "成功", "data": [ {原创 2017-03-08 18:03:27 · 716 阅读 · 0 评论 -
Java数组转成list,list转数组
数组转成list1:Collections.addAllString[] userid = {"aa","bb","cc"};List userList = new ArrayList();Collections.addAll(userList, userid);2:Arrays.asList()String[] userid =转载 2017-02-10 18:16:37 · 356 阅读 · 0 评论 -
Eclipse怎么在线安装JD-Eclipse反编译插件(JD插件Debug调试显示参数值)?
1、打开eclispe,在eclipse的菜单栏上选择Help->Install New Software 步骤阅读22,点击Install New Softeware,进入如下窗口。步骤阅读33,在对话框中点击add按钮,然后在弹出的对话框中输入名字和下载链接(因为它在下载,时间可能有点慢,多等一会),如下图所示Name:jd-转载 2017-08-26 17:58:17 · 1138 阅读 · 0 评论 -
eclipse debug模式修改change value值
eclipse debug 模式调试时, 修改list的值:原创 2017-09-05 15:22:04 · 4613 阅读 · 1 评论 -
Cookie-Form型CSRF防御机制的不足与反思
今天看了 https://hackerone.com/reports/26647 有感。这个漏洞很漂亮,另外让我联想到很多之前自己挖过的漏洞和写过的程序,有感而发。Django已经在昨天修复了该漏洞 https://www.djangoproject.com/weblog/2016/sep/26/security-releases/0x01 借助Session防御CSRF漏洞转载 2017-10-31 09:59:54 · 448 阅读 · 0 评论 -
session一致性架构设计极简教程
一,缘起什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。 Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建session,提供数据存储功能。最常见的,会把用户的登录信息、用户信息存储在session中,以保持登录状态。 什么是session一致性问题?转载 2017-11-28 16:51:13 · 229 阅读 · 0 评论 -
为java程序员整理的面试、编码、技巧、资源总结
1面试篇:最有价值的50道java面试题 适用于准入职Java程序员拿百度offer的三面经历直击Java程序员阿里5轮B2B面试现场:我是如何突出重围的程序员简历应该怎么写?Java程序员面试经:面试前到底该不该刷题以及面试前该如何准备2工具篇:Intellij Idea 本地 l转载 2017-11-20 21:49:16 · 737 阅读 · 0 评论 -
jsp标签分页
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% // pages总页数 current当前页 String json =原创 2017-12-01 17:53:48 · 273 阅读 · 0 评论 -
多种长连接转换为短连接方案,支持失败切换
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder...转载 2018-07-25 14:55:41 · 3315 阅读 · 0 评论 -
长链接(url)转换为短字符串,再把url和短字符串存数据库(有短域名方案)
import org.apache.commons.codec.digest.DigestUtils;/** * 工具类:通过加密运算后,将长连接转换为短字符串 * */public class ShortStrlUtil { public static void main(String[] args) { // 长连接 String longUrl = "https...转载 2018-07-25 15:02:41 · 1898 阅读 · 0 评论 -
Java子线程抛异常传递到主线程
public static void main(String[] args) { try { AtomicLong count = new AtomicLong(0); Thread th = Thread.currentThread(); BusinessRuntimeException err =...原创 2019-09-20 14:46:31 · 2782 阅读 · 0 评论 -
freemarker空值处理
二、空值处理${empty}如果empty标签没有在servlet中添加key或者值为null,会报错 empty Value Expression newTag is undefined。有人说这是个好的控制错误的机制,但本人不这么认为,因为空值太常见了,谁知道什么时候里面就成空值了?每个变量理论上都有可能。难道每个变量都要加入一个判断?就像struts中转载 2017-01-19 14:09:21 · 865 阅读 · 0 评论 -
生成验证码
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.http.HttpServle原创 2016-08-15 13:53:37 · 286 阅读 · 0 评论 -
通过反编译深入理解Java String及intern
一、字符串问题 字符串在我们平时的编码工作中其实用的非常多,并且用起来也比较简单,所以很少有人对其做特别深入的研究。倒是面试或者笔试的时候,往往会涉及比较深入和难度大一点的问题。我在招聘的时候也偶尔会问应聘者相关的问题,倒不是说一定要回答的特别正确和深入,通常问这些问题的目的有两个,第一是考察对 JAVA 基础知识的了解程度,第二是考察应聘者对技术的态度。 我们看看以下程序会输转载 2016-04-06 10:18:46 · 681 阅读 · 0 评论 -
eclipse如何debug调试jdk源码
java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码。虽然官方的jdk自带了源码包src.zip,然而在debug时查看变量却十分麻烦。例如调试HashMap的 public V put(K key, V value) 方法并查看key的值时会提示:可以看到不能显示变量的值了,原因在于oracle提供的jre中rt.jar不带de转载 2016-03-11 17:43:49 · 851 阅读 · 1 评论 -
JAVA 对象引用,以及对象赋值
关键字: java对象 引用Java对象及其引用关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。转载 2016-04-04 11:06:22 · 375 阅读 · 0 评论 -
利用Spring AOP 更新memcached 缓存策略的实现(二)
承接上文,本人终于履行承诺,实现了不使用数据库实现更新缓存的方法,上文链接:利用Spring AOP 更新memcached 缓存策略的实现(一)实现思路:1. 执行业务逻辑查询时,第一次在memcached中不存在,则将查询结果序列化后存入memcached中(key:业务方法名+参数类型+参数值+版本号 转 MD5),并且存入当前业务包的版本号(key:业务包名,value转载 2016-03-20 21:50:29 · 455 阅读 · 0 评论 -
利用Spring AOP 更新memcached 缓存策略的实现(一)
本人参考文档:http://blog.csdn.net/ajun_studio/article/details/7343781memcached批量删除解决方案:http://tech.ddvip.com/2008-10/122405933178234.html(2013-4-10续 本人实现了不用数据库临时表的方法,见 利用Spring AOP 更新memcached 缓存策转载 2016-03-20 21:47:55 · 898 阅读 · 0 评论 -
BigDecimal加减乘除运算
java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:第一种:BigDecimal(double val)Translates a double into a BigDecimal.第二种:BigDecimal(String val)Translates the String repre sentation of a转载 2016-03-16 15:58:33 · 354 阅读 · 0 评论 -
Java大神修炼之路
一、基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://ifeve.com/jmm-faq/ 1.1.2. 了解JVM各种参数及调优 1.1.3.转载 2016-01-17 00:27:36 · 2662 阅读 · 0 评论 -
使用spring的@Async异步执行方法以及不执行问题
应用场景:1、某些耗时较长的而用户不需要等待该方法的处理结果2、某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时要点:1、In short, the context loaded by the ContextLoaderListener (generally from applicationContext.xml) is the parent of the co原创 2015-11-05 14:30:46 · 2828 阅读 · 0 评论 -
从字节码层面看“HelloWorld”
一、HelloWorld 字节码生成 众所周知,Java 程序是在 JVM 上运行的,不过 JVM 运行的其实不是 Java 语言本身,而是 Java 程序编译成的字节码文件。可能一开始 JVM 是为 Java 语言服务的,不过随着编译技术和 JVM 自身的不断发展和成熟,JVM 已经不仅仅只运行 Java 程序。任何能编译成为符合 JVM 字节码规范的语言都可以在 JVM 上运行,比较转载 2016-04-07 14:46:03 · 328 阅读 · 0 评论 -
Java动态代理实现
一般情况,代理模式中的接口和代理类都被固定了,这种模式称为静态代理。 JDK1.3引入了动态代理,写个实例比较清楚。public interface UserDao { public Boolean findUserById(String userId); }public class UserDaoImpl implements UserDao { @Override p原创 2016-04-07 14:39:25 · 302 阅读 · 0 评论 -
ibatis自动生成工具,abator使用方法
介绍 Abator 是一款iBATIS代码生成工具。它从数据库获取信息,然后产生如下文件。 数据库表的SqlMap.xml file 文件,如UserSQL.xml; 数据库表的Java Bean Model,如User.java; 包含一个综合主键的数据库表的主键model,如UserKey.java; 包含DAO层 selectByExample方法的example文件,原创 2016-03-18 23:12:20 · 528 阅读 · 0 评论 -
Java中获取当前运行代码的类名、方法名、行号
/* * 1.获取当前运行代码的类名,方法名,行号,主要是通过java.lang.StackTraceElement类 * * 2. * [2]获得调用者的方法名, 同new Throwable * String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(转载 2016-06-23 15:49:31 · 1473 阅读 · 0 评论 -
java集合类Stack类
在Java中Stack类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下:Stack通过五个操作对Vector进行扩展,允许将向量视为堆栈。这个五个操作如下: 操作转载 2016-04-14 14:25:55 · 654 阅读 · 0 评论 -
ArrayList LinkedList源码解析
在java中,集合这一数据结构应用广泛,应用最多的莫过于List接口下面的ArrayList和LinkedList;我们先说List, 1 public interface List extends Collection { 2 //返回list集合中元素的数量,若数量大于Integer.MAX_VALUE,则返回Integer.MAX_VALUE 3 in转载 2016-04-05 16:17:22 · 448 阅读 · 0 评论 -
推荐!国外程序员整理的Java资源大全
构建这里搜集了用来构建应用程序的工具。Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。Gradle:Gradle采用增量构建。Gradle通过Groovy编程而不是传统的XML声明进行配置。Gradl转载 2016-04-13 14:30:11 · 590 阅读 · 0 评论 -
HashMap 源码解析
HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表。允许null键和null值,不保证键值对的顺序。HashMap检索数据的大致流程: 当我们使用HashMap搜索key所对应的value时,HashMap会根据Hash算法转载 2016-04-05 16:21:36 · 296 阅读 · 0 评论 -
HashMap 源码解析
HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表。允许null键和null值,不保证键值对的顺序。HashMap检索数据的大致流程: 当我们使用HashMap搜索key所对应的value时,HashMap会根据Hash算法对key进行计算,得到一个转载 2016-04-08 18:47:54 · 311 阅读 · 0 评论 -
Java 动态代理机制分析及扩展
本文通过分析 Java 动态代理的机制和特点,解读动态代理类的源代码,并且模拟推演了动态代理类的可能实现,向读者阐述了一个完整的 Java 动态代理运作过程,希望能帮助读者加深对 Java 动态代理的理解和应用。转载 2016-04-07 18:00:22 · 380 阅读 · 0 评论 -
HttpClient (HTTP 请求工具类)
HTTP 请求工具类,包括HTTP.GET HTTP.POST HTTPS.GET HTTPS.POST 二进制流 文件传送等等原创 2015-06-29 18:07:27 · 904 阅读 · 0 评论