- 博客(30)
- 收藏
- 关注
转载 深入理解反射
一、类的加载、连接和初始化这是jvm那块的知识,复习一下,这其实是和反射有关系的。① 类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象(类是种定义,但在java里,万物都是对象,即类这种定义也是对象的一种),也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象。系统中所有的class类实际上也是实...
2019-02-20 12:09:00
168
转载 一个完整的分表插件流程
分表查询的思路很简单,就是在sql的运行过程中的某一阶段,拦截下sql,将它“自动”路由到分表中的任意一个一、Mybatis Interceptor接口使用 按照思路所说,自然要想办法把运行到某一阶段的sql拦截下来并做更改,那么就需要Interceptor。 Interceptor可以拦截的方法,官网描述如下: MyBatis 允许你在已映射语句执行过程中的某一点...
2018-08-23 20:41:00
146
转载 JVM学习4--类装载、生命周期
一、类的生命周期 首先要明确,类的生命周期是有五个阶段,而我们平时所说的类加载或者类装载,是指前三个阶段,即:加载、连接、初始化。二、类装载概述 在这块,大体上讲一下类装载的概念,然后有几个demo,产生的现象我们在细说加载、连接、初始化三个阶段时解释。 类装载的条件:Class只有在被使用的时候才会被装载,Java虚拟机不会无条件地装载Class。Ja...
2018-05-05 10:51:00
175
转载 JVM学习3--GC参数及收集器
(本文所提到的算法请见:http://www.cnblogs.com/NoYone/p/8971239.html)一、串行收集器 -XX:+UseSerialGC 从第二张图的时间可以看出来,复制算法的效率要比标记压缩算法高的多。二、并行收集器 -XX: +UseParNewGC (新生代并行,老年代串行) -XX: +UseParallelGC (...
2018-04-29 20:06:00
109
转载 JVM学习2--GC算法,Stop-The-World现象
一、GC算法 ①引用计数法:老牌垃圾回收算法,通过引用计数来回收垃圾。(Java不用) 问题之一:很难处理循环引用:当根对象消失,实际上其他三个对象都应该被回收,但是因为环的出现,这三个对象都不会被清除。 ②标记清除算法 标记清除算法是现代垃圾回收算法的思想基础。分为两个阶段:标记阶段和清除阶段。一种可行的实现是,在标记阶段,首先通过根节点,标...
2018-04-29 16:22:00
579
转载 JVM学习1--数字存储,内存模型,指令重排
一、数字在计算机中的存储 整数:以补码形式存储。 补码:正数的补码是自身,负数的补码是取反码加1(取反码时符号位还是1) 浮点型:以float类型表示 注意一下,这八位指数实际上是(127+次数)的结果,因为要考虑到负数指数的情况,例如如下118.5在计算机中的存储: 而因为科学计数法第一位总是1开头,可以将小数点前面...
2018-04-28 22:23:00
123
转载 FutureTask源码解析
两种构造方式:1. public FutureTask(Callable<V> callable) { if (callable == null) throw new NullPointerException(); this.callable = callable; this.state ...
2018-04-17 12:16:00
129
转载 Future模式理解及FutureTask应用场景
一、 Future模式理解先说一下为什么要用future模式:两个任务没有必然的前后关系,如果在一个线程中串行执行,就有些浪费时间,不如让两个线程去并行执行这两个任务,执行完了到主线程去汇报就可以了。(让任务后台运行,不阻塞线程)则使用Future模式耗费的时间为: max(TimeofTask1,TimeofTask2)。串行的话则是TimeofTask1+TimeofTask...
2018-04-16 19:30:00
587
转载 Spring AOP的基石--Java动态代理
一、代理模式简介以及静态代理动态代理区别1. 关系图静态代理:可以看出有一接口Sourceable,两个实现类Source,Proxy,Client调用的Proxy。理解一下就是Client通过Proxy来调用这个method,而不是直接通过Source来调用。这就像我们的电脑开代理的时候,通过代理上网,而不是直连网络。从这张类图中也可以看出实现代理模式的两个...
2018-04-07 17:09:00
130
转载 Spring基础总结一(生命周期,Aware接口,Resources)
一、Spring生命周期* 容器级别生命周期接口方法* ①.实例化BeanFactoryPostProcessor实现类 ::若实现该接口,在Spring容器加载bean的定义文件之后,实例化bean之前,可以修改bean的定义属性。* ②.执行BeanFactoryPostProcessor的postProcessBeanFactory方法* ③.实例化BeanPostProce...
2018-04-06 21:11:00
210
转载 集群中的session共享问题解决方案
一.大致说一下nginx的负载均衡策略1.轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,则自动剔除故障机器,使用户访问不受影响。2.weight:指定轮询权重,weight值越大,分配到的几率就越高,主要用于后端每台服务器性能不均衡的情况。3.ip_hash:每个请求按访问IP的哈希结果分配,这样每个访客固定访问一个后端...
2018-03-19 20:07:00
208
转载 Java并发之原子性,有序性,可见性,以及Happen-Before原则
原子性原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,操作一旦开始,也不会被其他线程干扰。即原子操作是一个做小操作。例如 i++,其实经历了读,算,赋值绝对算不上是一个原子操作。一个i = 10这样的赋值操作可以称为原子操作。java.util.comcurrent.atomic包里都是关于原子操作的类,有时间会另写一篇博客。有序性提到有序那必然就有乱...
2018-03-10 20:40:00
215
转载 Java NIO技术概述
NIO(no-blocking I/O,也有人叫它new I/O),是一种非阻塞型I/O,是I/O多路复用的基础。NIO对于高并发长连接处理器,或者大文件在网络中的传输,具有很大的意义。那么NIO对BIO的优势是什么呢?1.高并发,大量长连接情形下。先说BIO的解决方案,即“一个连接占用一个线程”。那么可想而知,对于连接较多的服务器,会因为线程的创建和切换而浪费非常多的...
2018-03-02 16:09:00
102
转载 Java反射机制总结
首先咱们要知道什么是类对象:类对象就是记录某个类本身的构造方法、属性、方法的对象。1.获取类对象的三种方式Class.forName('完整类名')类名.classnew类名().getClass()示例:用反射来创建一个新的对象。package reflection;import java.lang.reflect.Constructor;import ...
2018-02-01 13:22:00
80
转载 java线程以及定时任务
线程的概念在此不再赘述。下面介绍三种启动线程的方式。1.继承Threadpublic class ThreadTest extends Thread { @Override public void run() { int i = 0; while (i < 10){ i++;...
2018-01-21 22:08:00
197
转载 java流概述以及文件读写示例
1. 先分清楚是字节流还是字符流。字节流:InputStream OutputStream字符流:Reader Writer字符流与字节流的区别是读取的单位长度不同,字节流读8字节,字符流读16字节,所以有中文时,就得用字符流。2. 在字节/字符流基础上,又分为节点流和处理流节点流:直接和数据源相连。例如:FileInputStreamFileOut...
2018-01-18 20:09:00
93
转载 CSS常用内容总结(二)
接常用总结一1.displaydisplay:none 此标签不显示display:block 将行内标签当做块级标签display:inline 将块级标签当做行内标签display: inline-block; 同时具有inline和block的特点,具有inline的特点:默认自己有多少还是占多少; 具有...
2018-01-17 19:43:00
53
转载 CSS常用内容总结(一)
1.选择器,即设置的样式可以应用到HTML的什么位置。①标签选择器例 div{ background-color:red }<div> </div>,则为div设置样式。② class选择器.classelect{ background-color:red }<div class='classelect'> </div...
2018-01-17 19:06:00
104
转载 struts实现文件上传和下载。
先来实现上传。写上传不管语言,都要先注意前端的form那儿有个细节。<form name="form1" method="POST" enctype="multipart/form-data">即这个enctype,编码方式要加上multipart/form-data,这说明了以二进制形式传输数据(即不经过编码处理)。要是考虑安全性,还要对MIME(M...
2018-01-13 13:17:00
77
转载 python实现XSS过滤(BeautifulSoup和白名单处理)
下面我做的莫名其妙的代码格式化是因为这个 --。--首先大致说一下XSS,就是在HTML里插入恶意的javascript代码,使得在该HTML加载时执行恶意代码,达到攻击的目的。可能存在的地方呢,就是只要是用户能输入的地方那么就可能产生XSS,包括像博客园这种能看到输入形成的HTML的编辑器。下面是博客园的过滤手段。(注意最后一行) 当然不止这些写法,比如&l...
2018-01-12 21:12:00
1299
转载 python实现单例模式
有这么一种场景,我们把数据封装到类体或类的某个方法里,然而我们new出这个类只是为了拿到这部分数据,那么当多次这样调用的时候,每次都来拿数据并放到内存中大大浪费了内存。那我们就可以想,我们拿到一次数据以后,把它放到内存里,下次要用同样的时候做个判断,如果内存里有,那么就不用再取了。这个时候就要设计一种“单实例模式”。方法1:class Foo(object): ...
2018-01-12 20:06:00
96
转载 jsonp实现跨域请求
直接用原生ajax请求另一个域的资源,会被同源策略限制,而用<script src="url"></script>这种方式“引入url”,实际上引入了一个js代码,就不会被同源策略限制,可以请求到。用这个有一个前提就是对方网站后台的返回确实设置了js代码块或者某个callback函数,所以这种请求方式是有特定应用场景的,并不是跨域都能用这种。1. java...
2018-01-11 22:27:00
81
转载 linux设置静态IP和DNS以及改网卡名
ubuntuUbuntu如果是desktop版,由于desktop版安装了NetworkManager,修改完interfaces文档中的内容,不会生效,需要先修改/etc/NetworkManager/NetworkManager.conf文档中的managed参数,将它设置为true,然后再修改/etc/network/interfaces文件,设置静态IP。#The pri...
2018-01-08 21:48:00
199
转载 centos设置程序开机自启或禁止加载
1. 可以直接把需要启动的脚本写到/etc/rc.d/rc.local文件里,例如vim /etc/rc.d/rc.local/usr/local/apache/bin/apachectl start2. Chkconfig用法(旧版)(1)chkconfig --level [0123456] [service name] [on|off] chkconfig...
2018-01-08 21:45:00
523
转载 Ubuntu设置程序开机自启或者开机禁止加载
先说说ubuntu,它有运行级别这个概念0:停机1:单用户形式,只root进行维护2:多用户,不能使用net file system3:完全多用户5:图形化6:重启例子:按指定顺序、在指定运行级别中启动或关闭update-rc.d <basename> start|stop <order> <runlevels>实例:update-rc.d apach...
2018-01-08 21:42:00
431
转载 screen使用
远程连接Linux系统后,需要在后台运行一下程序,nohup呢感觉不大直观,打心里不信任它。。那么screen就是很棒的工具,除了“后台”运行程序,还能做到分屏等等。下面介绍一下screen这款工具的使用(常用操作)。screen -ls(-list)查看当前有的screen session,每新建一个screen即为新创建一个screen session。比方说在一个scr...
2018-01-08 21:33:00
99
转载 三种ajax上传文件方法
1. XMLHttpRequest(原生ajax)<input class="file" type="file" id="fafafa" name="fileupload" /><input type="button" value="提交XHR" onclick="xhrSubmit();"/><script type="text/javas...
2018-01-08 21:15:00
131
转载 Java JSON数据处理
比方说要处理这么一段数据。{"data":[{"salt":"","plaintext":"xiaoxu","time":"1507462954","hash":"0b4fd093bd6a97154001542e682a9289"}]}在{}里面叫做JSONObject,而中括号里面的是JSONArray。一段JSON数据,当然了,把它当做一个字符串各种split当然可以了。...
2018-01-08 09:15:00
106
转载 JAVA读取和写入properties文件
1.读取 Properties prop = new Properties(); try { //这个getResourceAsStream方法就是把文件转为inputStream的方式 prop.load(HtpUtil.class.getResourceAsStream("htp.properties")); ...
2018-01-07 19:11:00
170
转载 JAVA处理Http请求(GET,POST)
本文用的是java.net里面的方法,HttpClient也可以。java.net.HttpURLConnectionjava.net.URL1. GETpublic static String get(String strUrl, String cookie) throws MalformedURLException,IOException { S...
2018-01-07 18:59:00
413
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人