
java
文章平均质量分 57
an-ping
这个作者很懒,什么都没留下…
展开
-
spring事务
写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大...转载 2018-08-02 11:25:45 · 123 阅读 · 0 评论 -
java动态代理(JDK和CGLIB)
在spring aop中基于动态代理可以给目标类加入一些交叉业务,对目标对象方法进行增强处理。实现原理如下:一 JDK动态代理(基于接口的类)1.创建一个Code的接口,抽象方法是playcode()://敲代码的接口public interface Code { //敲代码的方法 public void playCode();}2.实现Code接口类:publi...原创 2018-08-07 10:58:32 · 354 阅读 · 0 评论 -
jvm
原文出处: 老码农1、你知道哪些或者你们线上使⽤什么GC策略?它有什么优势,适⽤于什么场景?参考 触发JVM进行Full GC的情况及应对策略。2、Java类加载器包括⼏种?它们之间的⽗⼦关系是怎么样的?双亲委派机制是什么意思?有什么好处?启动Bootstrap类加载、扩展Extension类加载、系统System类加载。父子关系如下:启动类加载器 ,由C++ 实现,没有父...转载 2018-08-03 10:18:03 · 128 阅读 · 0 评论 -
logger使用
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4j API (http://jakarta.apache.org/log4j/docs/api/index.html):static Level WARNWARN level表明会出现潜在错误的...转载 2018-08-03 10:50:01 · 1777 阅读 · 0 评论 -
java值传递与引用传递
这个问题相对于函数而言,即方法参数。在java中是没有传址调用的,这里我们需要注意的是一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值,这句话相当重要,这是按值调用与引用调用的根本区别。案例分析:package com.yc.test;public class User { public String name; public int age; publ...原创 2018-08-18 19:12:52 · 146 阅读 · 0 评论 -
分析重写equals要重写hashCode
一般来说将类放置在容器中要重写equals()方法,放置在散列中要重写hashCode()方法,如果放置在有序容器的话要重写compareTo()方法。在HashMap中如果key是一个自定义类那么必须重写equals和hashCode。先分析下面代码:情景一:1 自定义一个实体类User:(没有重写equals和hashCode)package com.yc.test;...原创 2018-08-18 20:43:29 · 177 阅读 · 0 评论 -
java中String、Stringbuffer、StringBuilder的区别
String是字符串常量,对String的操作其实就是不断产生新对象并且将旧对象回收的过程;StringBuffer和StringBuilder是字符串变量,多次被修改不会产生新对象。StringBuffer相对于StringBuilder来讲是线程安全的,所以在要求线程安全的情况下必须使用StringBuffer。三者的执行速度为StringBuilder>StringBuffer>...原创 2018-08-19 08:52:19 · 131 阅读 · 0 评论 -
抽象类与接口的区别
区别:抽象类的方法可以是抽象的,也可以有具体实现,抽象类在某种程度上类似普通类,但是不能实例化,方法访问修饰符可以是public、protected、default,抽象类可以有构造方法 ;接口的方法必须是抽象的,方法访问修饰符默认是public ,不可以是其他修饰符,接口没有构造器;抽象类和接口都可以有静态成员变量,抽象类中访问修饰符可以是任意的,但在接口中默认是public st...原创 2018-08-19 14:20:51 · 151 阅读 · 0 评论 -
java元注解的使用
一 有时候需要自定义注解,java给了我们是四个元注解(定义注解的注解):1 Target:用来表示直接所修饰的对象范围它的可用范围(ElementType取值有:constructor构造方法、field作用域成员变量、method方法、local_variable局部变量、package包、parameter参数、type类 接口或enum声明、annotation_type用于注...原创 2018-11-02 16:25:10 · 176 阅读 · 0 评论 -
Java线程和线程池
创建线程的方式:继承Thread 、 实现Runnable接口 、实现Callable接口(可以通过Future获取返回结果)介绍一下通过Callable实现多线程:public class ThreadC implements Callable { public Object call() throws Exception { System.out.pri...原创 2019-07-12 18:33:35 · 194 阅读 · 0 评论 -
Java8新的时间日期API使用(LocalDataTime、Instant)
LocalDate/LocalTime/LocalDateTime使用1.LocalDate类表示一个具体的日期,但不包含具体时间,也不包含时区信息。可以通过LocalDate的静态方法of()创建一个实例, LocalDate也包含一些方法用来获取年份,月份,天,星期几等:LocalDate localDate = LocalDate.of(2017, 1, 4); // 初始化一...原创 2019-07-19 12:00:40 · 1224 阅读 · 0 评论 -
HttpClient使用
//发送无参get请求 public void testGetRequestNullParam() throws Exception{ CloseableHttpClient httpClient= HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://www.baidu.com"...原创 2019-07-17 11:09:10 · 664 阅读 · 0 评论 -
回顾Socket编程
编写一个客户端与服务端对话的程序:客户端:package com.irootech.controller;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Soc...原创 2019-09-03 19:05:47 · 158 阅读 · 0 评论 -
Java集合
1 在for循环中移除list的元素,以前没注意讲过但又忘了,补充一下如果知道ArrayList的长度,一定指定其长度,避免扩容:(错误示例1) List<Integer> list1=new ArrayList(); for(int i=0;i<20;i++){ list1.add(i); } S...原创 2019-09-06 11:03:17 · 179 阅读 · 0 评论 -
java序列化Seralizable
一 应用场景Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。在进行Java对象序列化的时候,会把其状态保存为一组字节,在对这些...原创 2018-08-04 18:24:25 · 678 阅读 · 0 评论 -
Comparable和Comparator的用法与区别
一 应用场景:当对自己定义的数据结构需要进行指定排序的时候,java中给了我们两个接口Comparable和Comparatorcomparable接口定义一个方法: public interface Comparable<T> { public int compareTo(T o); }comparator接口定义方法(jdk版本不同数量不同)注意:有些类...原创 2018-08-04 11:59:25 · 12898 阅读 · 3 评论 -
Map的四种遍历方法
@Test public void testMap(){ Map<String, String> map = new HashMap<String, String>(); map.put("age", "18"); map.put("name", "Java"); //方法一 通过keySet() 通过keySet获取的是Set集合原创 2018-08-04 10:09:25 · 139 阅读 · 0 评论 -
servlet三大域对象:request、session、application
作用域范围:request<session<application1.request是服务端接收到请求就会建立一个request对象,所以它的作用域是当前请求,对应接口是:javax.servlet.http.HttpServletRequest方法:request.setAttribute(String name,Object obj);request.getAttribut...原创 2018-07-16 17:42:12 · 633 阅读 · 0 评论 -
servlet中的request.getContextpath
原博地址:https://www.cnblogs.com/prefect/p/5664284.htmljsp中的request.getContextPath() <%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径。但不用也可以吧,比如<a href="<%=request.getContextPath()%...转载 2018-07-16 20:37:36 · 5559 阅读 · 2 评论 -
java反射invoke
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能:在运行时判定任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判定任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。packa...转载 2018-07-11 19:51:54 · 2634 阅读 · 0 评论 -
java堆栈详解
原博地址:https://www.cnblogs.com/whgw/archive/2011/09/29/2194997.htmlJava中堆内存和栈内存详解Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉...转载 2018-07-11 20:39:44 · 3631 阅读 · 0 评论 -
servlet获取web.xml初始值与web.xml加载顺序
一 、在web项目启动的时候会加载web.xml,它的节点有哪些呢?1.<context-param>:应用范围内上下文初始化参数<context-param> <param-name>param<param-name> <param-value>value</param-value></contex...原创 2018-07-17 22:02:05 · 1505 阅读 · 0 评论 -
java对象与对象引用变量
Java对象及其引用先搞清楚什么是堆,什么是栈。Java开辟了两类存储区域,对比二者的特点存储区域 存储内容 优点 缺点 回收 栈 基本类型的变量和对象的引用变量 存取速度比堆要快,仅次于寄存器,栈数据可以共享 存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量 当超过变量的作用域后,Java会自动释放...翻译 2018-07-12 14:47:54 · 13201 阅读 · 16 评论 -
Spring IOC(DI)原理
注:本文于个人观点,如有错误欢迎纠正一 名词解析:1.IOC是一种"控制反转"思想以前在程序中需要创建对象时,都是我们自己手动去new出来,这样非常麻烦,不利于对象管理。况且代码讲究低耦合(耦合:就是单元代码的紧密程度,一个单元代码的改动对另一个单元代码的影响),于是采用ioc思想,将对象创建、维护、销毁的控制权利交个了spring容器。2.DI是依赖注入,是IOC的一种重要实现...原创 2018-07-19 10:35:34 · 1727 阅读 · 0 评论 -
java常用解析properties、xml文件方法
mail.properties文件如下:mail_smtp_host=smtp.163.commail_smtp_auth=truejava解析properties代码如下:import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class MailConfig {...原创 2018-07-13 11:59:00 · 408 阅读 · 0 评论 -
java内存管理
前一段时间粗略看了一下《深入Java虚拟机 第二版》,可能是因为工作才一年的原因吧,看着十分的吃力。毕竟如果具体到细节的话,Java虚拟机涉及的内容太多了。可能再过一两年去看会合适一些吧。不过看了一遍《深入Java虚拟机》再来理解Java内存管理会好很多。接下来一起学习下Java内存管理吧。请注意上图的这个:我们再来复习下进程与线程吧:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,...转载 2018-07-13 23:09:31 · 140 阅读 · 0 评论 -
java类锁和对象锁(多线程synchronized关键字)
原博地址:https://blog.youkuaiyun.com/u013142781/article/details/51697672最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念。最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没用对都不知道。今天把一些疑惑都解开了,写篇文章分享给大家,文章还算比较全面。...转载 2018-07-14 10:47:58 · 318 阅读 · 0 评论 -
java中static作用
原博地址:https://blog.youkuaiyun.com/m13666368773/article/details/7513049 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中 没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,...原创 2018-07-14 12:20:56 · 186 阅读 · 0 评论 -
堆和栈的区别
原博地址:https://blog.youkuaiyun.com/qq_35923749/article/details/79517397堆内存(heap)和栈内存(stack)区别栈内存: 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。栈内存主要存放的是基本类型类型的数据 如、( int, short, long, byte, float, double, boolean, ch...转载 2018-07-14 13:02:25 · 155 阅读 · 0 评论 -
tomcat数据库连接池配置方法
通过数据库连接池管理数据库连接、释放,使数据库操作性能得到提升,提高系统资源使用效率。这里介绍一下采用tomcat统一管理连接池配置(Tomcat7)1 在tomcat的conf下的context.xml加入如下配置: <!--配置oracle数据库的连接池--> <Resource name="jdbc/oracle" auth="C...原创 2018-07-15 11:42:55 · 503 阅读 · 0 评论 -
java连接池详解
http://www.javaweb1024.com/java/JavaWebzhongji/2015/06/01/736.htmlhttps://blog.youkuaiyun.com/fangquan1980/article/details/52429903对于共享资源,有一个很著名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配﹑释放所造成的问题。为解决我们的问题,可以...转载 2018-07-15 14:00:47 · 215 阅读 · 0 评论 -
java中的全局变量、局部变量与static
java中的变量类型有:类变量:独立于方法之外的变量,用 static 修饰。实例变量:独立于方法之外的变量,不过没有 static 修饰。局部变量:类的方法中的变量。比如:public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 public vo...原创 2018-07-15 16:34:03 · 5797 阅读 · 0 评论 -
TIC/IP三次握手四次挥手详解
原博地址:https://www.2cto.com/net/201310/251896.html一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号...转载 2018-07-16 10:00:46 · 1119 阅读 · 0 评论 -
静态块、静态属性、构造块、构造方法执行顺序
转载:http://www.cnblogs.com/aligege/p/7600477.html总结:1、类加载时,执行静态代码块和初始化静态变量。执行顺序跟代码顺序一致。2、类实例化时,初始化变量、执行代码块、执行构造。其中初始化变量和代码块的顺序跟代码顺序一致。执行构造是在最后。3、实例化子类时,会先调用父类的构造方法。调用构造方法之前,会先执行该类的代码块。4、类只会加载一次。5、静态变量或...转载 2018-07-09 09:59:00 · 1318 阅读 · 0 评论