
java
xlj3
静以修身,俭以养德
展开
-
通过反编译后的字节码理解cglib代理
代码例子:实验过程final类不可被代理报错:Cannot subclass final class class javaDemo.proxyDemo.CGlibTestClass,final没有被代理。package javaDemo.proxyDemo;import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.proxy.MethodInterceptor;import java.io原创 2020-06-17 11:59:27 · 702 阅读 · 0 评论 -
通过反编译后的字节码理解jdk代理
一:使用例子public class ProxyDemo implements InvocationHandler { static ProxyDemo proxyDemo = new ProxyDemo(); public ProxyDemo() { } private Object sub; public ProxyDemo(Object obj) { sub = obj; } @Override publ原创 2020-06-17 11:24:01 · 259 阅读 · 0 评论 -
回顾篇-队列
Collection的接口实现回顾:Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue的实现 双向链表LinkedList: 实现了LinkedList接口 内置的不阻塞队列:PriorityQueue是非线程安全的,优先队列PriorityQueue本质上就是一个最小堆,维护了Object[]有序数组,Queue 中的元素根据它们的天然排序(通过其 java.util.Comparable 实现)或者根据传递给构造函数的 java.util...转载 2020-06-14 22:40:27 · 224 阅读 · 0 评论 -
区分一下ip形式
原创 2017-09-05 14:51:18 · 309 阅读 · 0 评论 -
java程序将汉字转成拼音的两种方法
1.使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPin转载 2016-11-12 13:57:24 · 762 阅读 · 0 评论 -
前台想后台传数组与解析
var info = JSON.stringify(ids); $.ajax({ type: "POST", url: url, data:{"ids":info,"flowId":flowId,"flowName":flowName,"name":name,"html":html}, dataType: "j原创 2016-11-16 23:11:20 · 1177 阅读 · 0 评论 -
Field
Field f=Counter.class.getField("count"); //拿到Counter类的count 实例域//...Counter c=new Counter(); //一个Counter对象实例//...Long l=(Long) f.get(c); //拿到对象实例的 域成员的值转载 2016-11-17 17:44:50 · 352 阅读 · 0 评论 -
map集合遍历
import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class TestMap { public static void main(String[] args) { Map map = new HashMap(); map.put(1, "a")转载 2016-11-18 15:56:43 · 295 阅读 · 0 评论 -
map模糊取值
public static void main(String[] args) { Map map=new HashMap(); Book book = new Book(); book.setName("wangli"); map.put("wangli",book); List result = likeString("wang", map);转载 2016-11-22 19:34:39 · 4895 阅读 · 1 评论 -
多线程模拟数据采集、显示
/** * */package test1;import java.text.SimpleDateFormat;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicLong;/*转载 2016-10-20 09:29:43 · 833 阅读 · 0 评论 -
gbk和utf-8
java的字符类型 char 占用2个直接,因为他是Unicode编码Java简单数据类型简单类型 大小 范围/精度 float 4 字节 32位IEEE 754单精度 double 8 字节 64位IEEE 754双精度 byte 1字节 -128到127 short 2 字节 -32,768到32,767 int 4 字节 -2,147,483,648到2,147,483,647原创 2016-10-19 00:20:45 · 343 阅读 · 0 评论 -
volatile的使用条件
volatile的使用条件Volatile 变量具有 synchronized 的可见性特性,但是不具备原子性。这就是说线程能够自动发现 volatile 变量的最新值。Volatile 变量可用于提供线程安全,但是只能应用于非常有限的一组用例:多个变量之间或者某个变量的当前值与修改后值之间没有约束。因此,单独使用 volatile 还不足以实现计数器、互斥锁或任何具有与多个变量相转载 2016-10-19 17:32:46 · 1645 阅读 · 1 评论 -
有状态的bean和无状态的bean的区别
有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。 无状态会话bean :bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有转载 2016-11-07 17:42:56 · 486 阅读 · 0 评论 -
固定位数随机数
import java.util.Random;public class Test { /** * @param args */ public static void main(String[] args) { /** * 生成随机数字 * * @return */ Random random = new Random(); Stri原创 2016-10-15 22:40:39 · 635 阅读 · 0 评论 -
关于encodeURI两次转码和非两次转码,以及后台中文,前台不显示问题总结
一:js:如果中文乱码,就转码两次function details(cellValue,row){ return ''+"详情"+''; }二:后台中文前台不显示:就用这个方法 response.addHeader("Content-Disposition", "attachment;filename="+ java.net.URLEncoder.enc原创 2016-09-29 15:48:26 · 1615 阅读 · 0 评论 -
类名.class, class.forName(), getClass()区别
1:Class cl=A.class; JVM将使用类A的类装载器, 将类A装入内存(前提是:类A还没有装入内存),不对类A做类的初始化工作.返回类A的Class的对象。2:Class cl=对象引用o.getClass(); 返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量原创 2016-10-14 17:19:38 · 445 阅读 · 0 评论 -
泛型T E K V ?
Java泛型中E、T、K、V等的含义 Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型)? - 表示不确定的java类型 S、U、V - 2nd、3rd、4th typesObject跟这些标记原创 2016-10-12 14:26:13 · 557 阅读 · 0 评论 -
正则测试记录
public static void main(String[] args) { String str = "SerialNum=\"0023210123456789123\" GenTime=\"2018-07-27 09:43:39\" STIME=1532655819 ETIME=1532655819 IN=eth3 OUT=eth2 SMAC=d4:ae:52:bd:a5:d3 ...原创 2018-08-14 19:35:04 · 318 阅读 · 0 评论 -
占位符
package com.datacloudsec.analysis.rule.utils;import com.alibaba.fastjson.JSON;import com.datacloudsec.analysis.rule.commons.event.model.EventLinkObject;import org.apache.commons.beanutils.BeanUti...原创 2018-08-14 15:04:50 · 1009 阅读 · 0 评论 -
${}替换符
package com.datacloudsec.alarm.process;import com.datacloudsec.alarm.bean.AlarmBean;import com.datacloudsec.alarm.repo.entity.EventAlarmLog;import com.datacloudsec.alarm.util.CamelCaseUtils;impo...原创 2018-07-30 16:47:41 · 915 阅读 · 0 评论 -
Common application properties
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html转载 2018-07-24 10:47:22 · 383 阅读 · 0 评论 -
Spring Boot安全自动配置
1.简介在本文中,我们将了解Spring Boot对安全性的看法。简而言之,我们将专注于默认安全配置以及如何在需要时禁用或自定义它。2.默认安全设置为了增加Spring Boot应用程序的安全性,我们需要添加安全启动器依赖项: 1 2 3 4 <dependency> <groupId>...翻译 2018-07-24 10:42:18 · 4110 阅读 · 0 评论 -
kv遍历java
@Testpublic void trimPackage() { // 正则:去掉中括号前后的双引号 String fieldSeparator = ";"; String kvSeparator = "="; String key = null; String value = null; String valueBoundaryC...原创 2018-05-23 18:37:15 · 1322 阅读 · 0 评论 -
扎心了
package com.datacloudcsec.base.common.utils;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.nio.charset.Charset;import java.util.R...原创 2018-04-03 16:55:50 · 544 阅读 · 0 评论 -
key value解析
@Testpublic void logparseTest() { String desStr = "<190>May 18 11:20:10 2016 HLJ_S12508_1_FW %%10FILTER/6/ZONE_DP_FLT_EXECUTION_TCP_LOG(l): -DEV_TYPE=SECPATH-PN=210231A0H6010C000002; " + ...原创 2018-04-10 19:30:08 · 1844 阅读 · 0 评论 -
java 正则特殊构造Special constructs (named-capturing and non-capturing)
@Testpublic void test1() { /** * .{3}(?=a)代表着这样的功能: * 查找给出的字符串中符合a前面有三个字母的这样的子串,当然取得的子串不包括(?=a) */ Pattern p = Pattern.compile(".{3}(?=a)"); String s1 = "444a66b"; Matc...转载 2018-04-10 14:54:14 · 344 阅读 · 0 评论 -
正则表达式切分字符串成数组
public static void main(String[] args) { String a = "a, b,c.d,e "; String[] split = a.split("[( )(,)(\\. )]"); }原创 2018-03-21 16:37:24 · 2245 阅读 · 0 评论 -
格式化数据库字段驼峰式
public static String format(String name) { if (name.contains("_")) { String[] split = name.split("_"); name = split[0]; for (int m = 1; m < split.length; m++) { ...原创 2018-03-17 15:52:14 · 1449 阅读 · 0 评论 -
Break和Label
package javaDemo.breakLabel;/** * @Author xlj * @Date 2018/2/28 16:42 */public class BreakLabel { public static void main(String[] args) { for (int i = 0; i < 4; i++) { ...转载 2018-02-28 16:50:47 · 197 阅读 · 0 评论 -
io回顾
package test;import java.io.*;/** * 读取一个文件,并打印在控制台上。 */class FileReaderTest { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("d:ss.txt");原创 2018-02-06 17:04:40 · 207 阅读 · 0 评论 -
下载文件的一种简单方法js
下载文件的一种简单方法js我在做的一个项目有一部分要下载附件,可是我们公司用了一个包和网上的用response的解决方法冲突,而网上的js解决方法又用到了ActiveXObj我们经理不让用这个.还好我一个同事很利害用了一个很简单的方法,简单到我都吃惊了.window.open(url)这个url是相对路径.比如说你在你的页面work/upload/p转载 2017-09-06 18:19:42 · 805 阅读 · 0 评论 -
new HashMap(){{put("id", "001");}}的解释
一、HashMap的初始化1、HashMap 初始化的文艺写法 HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。普通青年一般会这么初始化: HashMap map = new HashMap(); map.put("Name", "June"); map.put("QQ", "2572073701");看完这段转载 2016-11-04 14:39:48 · 27852 阅读 · 17 评论 -
| 是逻辑变量的运算,取“或”,|| 则是布尔变量的运算,取“或”
| 是逻辑变量的运算,取“或”,|| 则是布尔变量的运算,取“或”原创 2016-09-27 16:03:16 · 499 阅读 · 0 评论 -
Java中子类与父类的构造方法的调用关系
在 Java 中,无论是 explicit 还是 implicit 方式,都要求在子类的构造方法中调用其父类的构造方法。如果父类无构造方法(其实是一个默认无参的构造方法),那么子类的构造方法中会自动进行调用;如果 父类有自己的构造方法(这时父类不会有默认无参的构造方法),那么在子类的构造方法中,必须要调用父类的某个构造方法,而且必须是在构造方法的第一个语句 中进行调用。转载 2016-09-01 08:35:25 · 704 阅读 · 0 评论 -
HashCode的分析
==默认比较对象在JVM中的地址。 hashCode 默认返回HashCode值。 equal比较对象,默认也是比较对象在JVM中的地址,同==但是基本数据类型和Sring已经重写了hashcode和equal,hashset和hashmap,需要进行对put或add的值(除以重写过的如String)进行重写hashcode和equal,保证同一相同的类型不被重复插入集合;原创 2016-08-10 12:34:51 · 261 阅读 · 0 评论 -
SLF4J分析
slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade:门面,更底层一点说就是接口。他允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。更直观一点,slf4j是个数据线,一端嵌入程序,另一端链接日志系统,从而实现将程序中的信息导入到日志系统并记录。 因此,slf4j入口就是众多接口的集合,他不负责具体原创 2016-08-09 15:21:39 · 294 阅读 · 0 评论 -
context-param>与<init-param>的区别与作用
context-param>与的区别与作用的作用:web.xml的配置中配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: 和 2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.3.容器将转化为键值对,并交给ServletContext.4.容器创建原创 2016-08-08 16:03:09 · 403 阅读 · 0 评论 -
Socket 与 Webservice 的区别
Socket 与 Webservice 的区别 socket是一种协议,采用tcp或udp协议通信。Tcp、udp属于网络层,上边各层的应用都需要我们自己实现,例如端口的定义,数据包的定义,数据包的加密解密等。 webservice是一种服务,采用HTTP协议通信,Soap作为数据格式。HTTP协议属于应用层,通过服务器才可以发布,这样内部定义的端口,数据包,加解密都做好了,可原创 2016-08-19 11:16:28 · 1166 阅读 · 0 评论 -
-128----127缓存,在栈中获取
/* * 看程序写结果 * * 注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据 */public class IntegerDemo { public static void main(String[] args) { Integer i1 = new Integer(127); Integer i2 =转载 2016-08-17 19:20:32 · 805 阅读 · 0 评论 -
枚举
枚举类的普通类实现:package cn.itcast.day1;public abstract class WeekDay1 { private WeekDay1(){} public final static WeekDay1 SUN = new WeekDay1(){ @Override public WeekDay1 nextDay() { // TODO原创 2016-08-17 17:58:55 · 298 阅读 · 0 评论