java
文章平均质量分 64
JY_He
水平不高,始终坚持
展开
-
面试笔记01
类加载1.类加载step:加载,链接(校验,准备,解析),初始化,使用,卸载。(1)加载:加载class文件(获取class的二进制流文件,加载到JVM中,内存生成一个class对象表示该类)(2)校验:校验是否符合JVM合法性(class文件规范,语义验证:是否继承final,是否实现抽象方法)(3)准备:为class分配内存空间。设置static成员变量初始值为默认值,int为0,对象为null,但如果是final static 该阶段会之间进行赋值,因为同时被final和static修饰的成原创 2020-12-17 10:01:46 · 240 阅读 · 0 评论 -
Spring框架中的Quartz学习使用
Spring框架中的Quartz使用:首先简单介绍下Quartz,它是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,相当于java.util.Timer,但是比Timer多了很多的功能:1.持久性作业,就是保持调度定时的状态;2.作业管理,对调度作业进行有效的管理;3.类Corn的定时支持,可以用Corn的方式来执行作业;4原创 2016-08-13 14:00:50 · 4934 阅读 · 1 评论 -
java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationC
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationContext.xml] at org.springframework.web.context.support.ServletContextResource.getInputSt原创 2016-08-12 10:22:26 · 6871 阅读 · 0 评论 -
个人用hibernate写的通用Dao
import java.io.Serializable;import java.util.List;import com.ssh.common.Order;//使用泛型,重用性更高public interface IBaseDao{ //保存对象 Serializable save(T t); void saveOrUpdate(T t); //删,根据对象 vo原创 2016-08-04 11:19:27 · 3101 阅读 · 0 评论 -
NIO通信学习
今天在学jetty时,发现jetty是采用非阻塞I/O进行通信的,之前对NIO是一头雾水,很不理解,今天再次学习NIO通信,这部分也算Java中的重点难点部分,不能一下子全掌握,就今天学习内容进行各总结:java Nio 通信与Bio通信主要不同点:1.Nio中的单个channel即可支持读操作也可以支持写操作,而bio中读操作要用inputstream,写操作要outputstr原创 2016-08-09 16:47:44 · 826 阅读 · 0 评论 -
学习JDK与CGLib两种动态代理机制
前些天学习Spring注入时候,当实现类实现了接口类时,注入bean就是接口类,否则会报错;相反如果没有实现接口的接口类,注入的就是实例类对象,于是对此问题便产生了些疑惑。我们都知道Srping的bean注入就是通过反射机制以及动态代理实现的,而Spring是怎么实现两种情况的bean注入呢。后来通过资料和源码可知,是采用了两种动态代理机制:Spring AOP中,当拦截对象实现了接口时,生成方式原创 2016-08-10 16:47:51 · 826 阅读 · 0 评论 -
Lock及ReentrantReadWriteLock学习
参考网上的一个demo,进一步学习了解Java中的Lock使用,demo来自:http://blog.csdn.net/huang_xw/article/details/7090177废话不多说,直接上代码,注释写的很详细:package lock;import java.util.concurrent.ExecutionException;import java.util.conc原创 2016-08-29 14:37:56 · 583 阅读 · 0 评论 -
ForkJoinTask以及实现callable接口创建线程的学习
package ssl;import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Future;import java.util.concurrent.RecursiveTask;//要实现原创 2016-07-19 17:22:29 · 926 阅读 · 0 评论 -
Web基础知识的复习
1. Servlet是什么?能干什么? Servlet是运行在 Web服务器或应用服务器上的程序,它是作为来自Web 浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层,通过Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录。 Servlet的一些优点:1.Servle原创 2016-07-18 16:14:24 · 1345 阅读 · 0 评论 -
阻塞队列实现--生产消费模型
生产消费模型是多线程安全的典型例子,当初实现的时候使用的是一个数组或者队列,加上synchronized关键字,代码量比较多,后来学习了阻塞队列,发现使用阻塞队列来实现代码简洁不少,这样在面试的时候,面试官需要你实现一个生产消费模型也会好写一些,下面我给出原始和阻塞队列实现的代码供参考:1.原始实现package Concurrent;import java.util.Priority原创 2016-10-06 11:30:59 · 766 阅读 · 0 评论 -
Java 同步锁
主要理清锁的使用和本质锁的是什么: synchronized:synchronized是java中的一个关键字,在JVM层面上实现的,使用时不需要管理锁的获取和释放。(synchronized发生异常时,会自动释放线程占有的锁)直接上代码:public class SynchronziedTest implements Runnable{ //非静态属性 private ...原创 2018-03-23 16:57:14 · 734 阅读 · 0 评论 -
json写csv文件
JSON转换为CSV文件代码,参考w417204446的博客代码实现的,稍微改了下参考博客:https://blog.csdn.net/w417204446/article/details/53202039依赖用到: <dependency> <groupId>com.alibaba</groupId> ...原创 2018-07-30 14:16:44 · 1445 阅读 · 0 评论 -
线程安全与非安全基本概念
关于线程和线程不安全:在并发编程的时候,多少都会涉及到线程安全的问题,但是一直对这些概念没有彻透彻底的弄懂,今天看了一篇博文讲的很很好,再次转载,记录下来自己学习,参考链接:https://www.cnblogs.com/xingzc/p/6277581.html概述如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样...原创 2019-04-15 11:15:30 · 2912 阅读 · 0 评论 -
LRUCache缓存实现
LRU原理:LRU(Leastrecentlyused,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现:最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1.新数据插入到链表头部;2.每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3.当链表满的时候,将链表尾部的数...原创 2019-03-29 18:11:44 · 828 阅读 · 0 评论 -
Java线程池笔记
Java线程池在代码开发中使用线程池,主要能带来三个好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务可以不需要等到线程创建,能够立即运行; 提高线程的可管理性。线程是稀缺资源,如果无限创建线程,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。注:当线程请求的栈容量超过栈允许的最大容量的话,J...原创 2019-03-25 11:10:16 · 472 阅读 · 0 评论 -
JVM类加载笔记
参考博文:https://www.cnblogs.com/jswang/p/7699643.html http://www.importnew.com/25295.htmlJVM类加载过程一个类运行分为以下几步:装载、链接、初始化;装载:通过类的完全限定名,产生一个代表该类型的二进制数据流; 解析这个二进制数据流为方法区的内部结构; 构建一...原创 2019-03-07 11:01:28 · 220 阅读 · 0 评论 -
Java内存模型笔记
参考博文:https://www.cnblogs.com/lewis0077/p/5143268.htmlJava运行时数据区分为以下几个内存区域: PC寄存器/程序计数器: 用于保存当前正在执行的程序的内存地址,为了线程切换后能恢复到正确的执行位置,每个线程都需要一个独立的程序计数器,各个线程之间计数器互不影响,独立存储; Java栈: 每当创建一个线程,JV...原创 2019-03-05 16:57:08 · 202 阅读 · 0 评论 -
Java GC笔记
1.在新生代中,常规的应用进行一次垃圾收集(采用的是标记-复制算法),一般可以回收70~90%的空间,而永生代的垃圾收集效率远低于此;2.永久代的垃圾回收主要回收两个部分;1)废弃常量:与回收java堆中的对象非常相似,eg:一个字符串“abc”已经进入常量池中,但是当前没有任何String对象引用常量池中的"abc"常量,就会被诶清理。;2)无用的类:常量池中的其他类,方法,字段的符号引...原创 2019-02-27 15:29:51 · 192 阅读 · 0 评论 -
事件驱动模型简单实现学习
简单的实际驱动模型,就是监听文件发生变化,将添加的数据写入到数据库中,具体细节没有实现,仅仅实现框架事件源:package event1;import java.util.HashSet;import java.util.Set;import java.util.concurrent.ExecutorService;import java.util.concurrent....原创 2018-08-29 17:13:40 · 1060 阅读 · 0 评论 -
json解析实体类
多层json解析实体类样例:主类:package JsonPOJO;import java.util.List;public class JsonObject { private List<Nodes> nodes ; private List<Links> links ; public void setNodes(List...原创 2018-07-30 19:50:11 · 1220 阅读 · 0 评论 -
tomcat启动不了报错: Publishing failed Could not publish to the server. java.lang.IndexOutOfBoundsException
今天在maven工程下使用tomcat启动项目时,一直报错,报错内容就是tomcat启动不了,一启动就报如下错:Publishing failedCould not publish to the server.java.lang.IndexOutOfBoundsExceptionCould not publish server configuration: D:\workspace原创 2016-07-06 14:04:37 · 16156 阅读 · 5 评论 -
个人阶段性学习总结
实习报告总结 1.struts+spring+hibernate框架学习及使用: a.struts2主要负责接收网页中表单提交的数据,然后通过 Action 进行处理,再 Forward 到对应的网页; b.spring相当于一个大容器,将struts2和hibernate整合进来。spring负责业务层管理,主要利用IoC和A原创 2016-06-30 11:34:58 · 3749 阅读 · 0 评论 -
Java中的join方法个人理解
因为今天看到一道笔试题目,就是怎么确保多线程不发生死锁问题,个人认为要确保多线程不发生死锁的办法就是让线程有序的操作资源,当然我也不知道对不对,如果网友发现有错,欢迎指出把。我当时想到的就是使用join方法使用,然后就发现自己以前就是知道join方法可以使主线程停止知道子线程执行完毕。具体怎么实现怎么操作还是不清楚,于是自己写了一段简单的代码测试了一下,理解了一下,希望对大家有帮助,当然还是那句毕原创 2015-11-08 20:34:50 · 2528 阅读 · 3 评论 -
子类异常和父类异常捕获的关系
class ExampleA extends Exception{ private String a=null; //这里必须加上无参的构造函数,因为自己定义了有参的构造函数,则会覆盖原来无参构造函数 //但是子类构造对象时候会先调用父类的构造函数,其中会默认先调用super方法,该方法是调用父类的无参构造函数,若没有定义就会报错 public ExampleA(){}//所以必须写出无参原创 2015-11-08 21:56:07 · 9412 阅读 · 1 评论 -
java学习之路,方法重写
class Human{ private String name; private int age; public Human(){} public Human(String name,int age) { this.name=name; this.age=age; } public String getinfor() { String infor=name+" "+a原创 2015-10-08 11:14:52 · 437 阅读 · 0 评论 -
java一步一脚印—java基本类型的读写
import java.io.*;public class Test3 { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub ByteArrayOutputStream baos=new ByteArrayOutputStream();//节点流,自动原创 2015-10-21 20:57:39 · 473 阅读 · 0 评论 -
java 一步一脚印 流—文件的保存和读写
import java.io.*;public class Test2 { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub FileReader f=new FileReader("D:\\Java\\Test2.java");//创建一个读取流,并原创 2015-10-21 13:31:02 · 417 阅读 · 0 评论 -
内部类使用实现一个简单的文本框相加
这里先吐槽一下研究生读心累,没事还是别考研,Java进度越来越慢,学到内部类就实现了一个文本框相加:import java.awt.*;import java.awt.event.*;public class TestText { public static void main(String[] args) { // TODO Auto-generated method stub原创 2015-10-20 20:04:39 · 643 阅读 · 0 评论 -
十按钮布局管理
先确定大的Layout然后确定小的Layout,然后先实现小的,最后放进大的里面import java.awt.*;public class TextGUI {//Frame是带标题和边框的最顶层窗体;Panel是个最简单的容器类,它提供空间让程序放其它组件,包括其它Panel。 public static void main(String[] args) { // TODO Auto-原创 2015-10-18 09:45:57 · 623 阅读 · 0 评论 -
Java 多进程的生产和消费实现
学了差不多半个多月java,进度比较慢,把最近觉得还有点意思的代码放上来,一边以后自己有需要复习用。class SynStack{ private char data[]=new char[6];//用一个数组表示仓库 private int cnt=0;//有效元素个数 public synchronized void push(char ch)//往数组里面放元素,并且使用Synchro原创 2015-10-17 16:26:47 · 444 阅读 · 0 评论 -
Java一步一脚—ArrayList使用
import java.util.*;import java.util.Collections;//自定义的类需要定义含参构造方法,实现接口Compareable和重写方法comareTo方法,重新定义比较标准,并且将对象存进容器中,要重写toString方法class Student implements Comparable{//这里实现Comparable接口,是重写其中compare原创 2015-10-24 15:39:25 · 418 阅读 · 0 评论 -
Java一步一脚印—HashSet
import java.util.*;import java.util.Iterator;import java.util.Set;//一般使用容器,自定义类都需要重写toString方法,若是hashtable,hashSet hashMap还要重写equals和hashCode方法!(且记)class Person{ private int ID; private String n原创 2015-10-24 20:49:30 · 369 阅读 · 0 评论 -
Java一步一脚印—HashMap
import java.util.*;class StudentData{ private int ID; private String name; private String sex; private int age; public StudentData(int ID,String name, String sex, int age){ this.ID=ID; this.原创 2015-10-26 14:42:01 · 388 阅读 · 0 评论 -
浅谈spring的Ioc和DI
很久没回来更博了,前阵子琐事多人又比较烦躁,就没过来.今天又空就回来写写的东西,今天打算浅淡一下spring核心技术:(控制反转)IOC和(依赖反转)DI.以个人的经历来看,只要你去面试并且你使用过spring, ,都会问你spring的核心技术,这里就不再一一介绍spring是什么和spring好处了,就谈谈个人对spring核心技术的理解:一、IOC和DIIOC即控制反转,原创 2016-06-30 11:33:52 · 2698 阅读 · 0 评论 -
笔记
1.类的静态变量操作问题:package first;//静态变量public class Properties { private static int x=100; public static void main(String[] args) { Properties p1=new Properties(); BaseClass one = new BaseClass()原创 2016-02-10 21:30:51 · 436 阅读 · 0 评论 -
第一次实现最基本的MVC架构--登录注册查询删除基本操作
第一部分(model层):底层实现--Dao(基于DbUtils实现) CustomerDao接口 JdbcUtils(C3P0实现) 和实体类Customer(setter和getter方法),以及继承Dao类和CustomerDao接口的实现类Daopackage com.itcast.mvc.dao;import java.lang.reflect.ParameterizedTy原创 2015-12-30 14:52:54 · 1740 阅读 · 0 评论 -
Java一步一脚—排序(最基本的排序,两种快排,归并排序
public class Sort { public static void main(String[] args){ // TODO Auto-generated method stub int[] a={5,3,2,6,1,4}; Sort s=new Sort();//即使调用类内部的非静态成员,也需要创建该类的对象来调用相应的方法 s.sort(a); }原创 2015-10-22 11:39:06 · 651 阅读 · 0 评论 -
Java一步一脚印—单列两种方式
单列模式就是某个类只存在一个对象(即只能new一次),当某个类的初始化比较费时,费资源的时候,一般就会选择单列模式,我看了篇博文就顺便实现了下://懒汉方式创建单列,在获取单列对象处修改保证线程安全,提供static方法来获取单列对象class Singleton{ private static Singleton s=null;//内部创建单列的对象的引用 //将该类的构造方法设置为私原创 2015-10-28 14:57:29 · 655 阅读 · 0 评论 -
Java一步一脚印—通过简单的TCP网络编程实现局域网的聊天对话
import java.awt.*;import java.awt.Event;import java.awt.Window;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.Wind原创 2015-10-27 21:55:16 · 5875 阅读 · 5 评论 -
Java一步一脚印—TCP网络编程简单实现
import java.io.*;import java.net.*;public class TCPServer { public static void main(String[] args) throws Exception{ //new ServerSocket对象并不会自动监听有没有向端口号5678发送请求,要实现监听要调用ss的方法accept() Server原创 2015-10-27 15:01:13 · 505 阅读 · 0 评论