![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
庄ZY颜
这个作者很懒,什么都没留下…
展开
-
关于Jsp遇到405错误
传值的方式为“POST”和'GET“标签href跳转的默认方式为为GET,当跳转servlet时候,无DOGET方法即会报405错误!当POST传值到servlet时,无DOPOST方法也会405错误。原创 2015-06-17 12:57:57 · 4273 阅读 · 1 评论 -
Java虚拟机执行引擎多态的实现
在java中多态的表现为:重写(override)和重载(overload)重写(override 就是在同一个类中写多个方法名相同的方法)是java的静态分派: Java方法重载是根据传入参数的数量和参数类型,由于传入的参数类型和数量已已知的并且用传入的静态类型而不是实际类型作为参数来判定依据。而静态类型在编译器是已知的,那么在编译期,javac编译器就会根据静态类型来判断使用哪个重载版本的方法原创 2016-09-16 20:24:47 · 951 阅读 · 2 评论 -
java实现JSON解析器
对json数据格式进行词法分析,JSON数据格式一般分为String,Boolean,{,},null,[,],:, , 等,将其分解成为多个Token对Token进行顺序的语义分析(通过递归实现,可以将Token分为map,array分为数组对象和字典对象)最后返回object对象,即可完成json数据转为java对象格式代码实现: https://github.com/yk2945247原创 2016-11-10 09:18:59 · 1719 阅读 · 0 评论 -
浅析线程池
线程池为线程的容器,通过减少线程的创建和销毁时间来提高线程的利用率,但是不能控制线程池中线程的开始,挂起和中止。浅析线程池的实现: 1.当线程池被创建时候,会创建于线程池相同的下限的空闲线程; 2.当我们在线程池中加入任务时,线程池会安排当前空闲的线程逐一接手任务; 3.随着任务的增加,某一时刻当任务序列大于现在的线程下限时,线程池并不会马上创建一个新的线程,而是等待一定的时间后,看当前是否会原创 2016-09-07 19:34:00 · 391 阅读 · 0 评论 -
基于Spring的AOP实现自定义annotation操作日志
引入项目需要的AOP包 <!--aop--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.1.7.RELEASE</version> </dependency> <dependency>原创 2016-08-13 21:54:21 · 3764 阅读 · 0 评论 -
LRU算法实现
最近发现LRU在缓存使用的较多,特意回头来看看自己以前上机实现的代码原理: 最近最久未使用页面置换算法(LRU) 当需要淘汰某一页时,选择在最近一段时间里最久没有被使用过的页淘汰。 其基本原理为:如果某一个页面被访问了,它很可能还要被访问;相反,如果它长时间不被访问,再最近未来是不大可能被访问的。LRU采用页号栈的实现方法。最近访问的页放在栈顶,较早访问的页往栈底移动。总是先淘汰处于栈底的页。原创 2016-08-31 17:08:28 · 5503 阅读 · 1 评论 -
计算机网络随笔
当用户在浏览器输入一个URL时,首先DNS会解析URL成IP地址,然后根据IP地址找到对应的服务器,并向服务器发送一个Get/Post请求,由服务器返回默认的数据资源给访问的用户。扩展1:在服务器端可能存在负载均衡或反向代理的设备,在访问服务器时并不一定访问的是指定的IP,可能做了反向代理及负载均衡到某一个用户并不知道的服务器上,请求的数据可能存在数据库,可能存在于cache,可能存在于CDN上。而原创 2016-09-03 18:07:40 · 324 阅读 · 0 评论 -
Java 实现发送Http请求
最近需要一个短信业务的接口,发送http请求来发送短信,因为网上给的代码混乱不统一,自己实现了一个,以便自己以后自己使用java发送http请求。import org.apache.commons.httpclient.Header;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclie原创 2016-08-12 15:59:23 · 4482 阅读 · 0 评论 -
《剑指Offer》面试题55:字符流中第一个不重复的字符
思路: 1.使用一个容器保存字符的当前下标,所有字符下标初始为0,插入的时候,如果判断这个字符下标数组不为0,则表明字符已经出现过,直接将数组置为1即可,否则则置为当前index值,并且index++,时间复杂度为O(1); 2.查找第一不重复字符时,循环判断整个容器数组保存的值,找出index值最小的一个数据,即为最先插入的字符。时间复杂度为O(256),因为256为常数,即复原创 2016-07-10 13:14:25 · 312 阅读 · 0 评论 -
用JAVA实现简单爬虫多线程抓取
在循环爬取得基础上进行多线程爬虫,本程序中使用的三个线程,线程为实现runnable接口,并使用对象锁防止并发共同去访问同一个对象。让三个线程同时爬去同一个url并且得到的新的url不重复。原创 2015-07-14 19:23:39 · 7923 阅读 · 1 评论 -
Linux下JDK的安装
JDK的安装1.把JDK的ISO镜像文件挂载到linux操作系统上 mount/mnt/cdrom2.把文件拷贝到/home下 cp 文件 /home3.进入home目录下 cd /home4 安装镜像文件 ./???.bin5配置JDK环境变量,查看文件 /etc/profile6.配置JDK JAVA_HOME=/home/jd原创 2015-07-14 21:01:01 · 323 阅读 · 0 评论 -
JSP中利用JFreechart生成图表
首先要下载必备的jar包,jfreechart.jar和jcommon.jar, 然而在web.xml文件中配置<servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <s原创 2015-08-07 15:53:03 · 3465 阅读 · 1 评论 -
用JAVA实现简单爬虫循环抓取
原理: 1.给一个URL,爬虫爬取这个url; 2.url中提取HTML中a 标签内容获取新的url; 3.再通过新的url再循环以上;实现代码:import java.io.*;import java.net.*;public class Dome1 { public static void main(String[] args){ String s1="<a href=\"原创 2015-07-14 12:09:51 · 990 阅读 · 0 评论 -
lock和synchronized的同步区别与选择
区别如下: 1. lock是一个接口,而synchronized是java的一个关键字,synchronized是内置的语言实现;(具体实现上的区别在《Java虚拟机》中有讲解底层的CAS不同,以前有读过现在又遗忘了。) 2. synchronized在发生异常时候会自动释放占有的锁,因此不会出现死锁;而lock发生异常时候,不会主动释放占有的锁,必须手动unlock来释放锁,可能引起死锁的原创 2017-02-04 15:14:07 · 19304 阅读 · 0 评论