Java技能
文章平均质量分 70
成长的小菜鸟
这个作者很懒,什么都没留下…
展开
-
Spring AOP
什么是AOPAOP(Aspect Oriented Programming 面向切面编程),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。...转载 2018-09-06 22:27:38 · 230 阅读 · 0 评论 -
多线程火车票问题
1:https://www.cnblogs.com/upyouth/p/5721820.html2:https://blog.csdn.net/mengxiangyue/article/details/6871219原创 2018-05-09 19:41:56 · 898 阅读 · 0 评论 -
Java并发——线程同步Volatile与Synchronized详解
0. 前言转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52370068面试时很可能遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?提到线程安全、线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢? 1. volatil...转载 2018-03-30 16:29:21 · 160 阅读 · 0 评论 -
精华帖总结
java集合框架https://www.cnblogs.com/xiaoxi/p/6089984.htmljava 多线程https://www.cnblogs.com/GarfieldEr007/p/5746362.htmlJava实现同步的几种方式https://blog.csdn.net/pdw2009/article/details/52373947java 中的锁http://www.i...原创 2018-03-30 16:27:59 · 212 阅读 · 0 评论 -
threadlocal原理及常用应用场景
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。一.对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地转载 2018-01-31 11:04:10 · 298 阅读 · 0 评论 -
java开发_""和null的区别
String str1 = null; str引用为空String str2 = ""; str引用一个空串也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){...}和if(str2.equals("")){...}。转载 2017-09-19 20:19:27 · 544 阅读 · 1 评论 -
Java中==、equals()和hashCode()的比较分析
1、前言在Java语言中,==、equals()、hashCode()这三个方法都和对象的比较有关,但这三个方法各有什么用处,也就是说为什么要设计三种对象的比较方法呢?2、关于====设计的目的就是为比较两个对象是否是同一个对象。比较对象的相等不仅要比较对象内容相等,还要比较对象引用地址是否相等。对于基本数据类型而言,比较就是判断这两个数值是否相等,(基本数据类型没有方法),不存在转载 2017-09-19 20:15:26 · 451 阅读 · 0 评论 -
java类初始化顺序-阿里笔试题
阿里笔试题之写出程序输出结果:package com.patrick.bishi;public class TestVar { public static int k = 0; public static TestVar t1 = new TestVar("t1"); public static TestVar t2 = new TestVar("t2"); public st转载 2017-08-29 18:09:14 · 495 阅读 · 0 评论 -
经典题目 java类的加载顺序及理解何为java向前引用
123456789101112131415161718192021222324252627282930313233publi转载 2017-08-29 18:01:19 · 590 阅读 · 0 评论 -
java类加载详细解答精华
这两天遇到几个类似的问题,就是一个程序到底是怎么运行的,而且这些问题很具有迷惑性,这里两个例子做分析!问题一:如下代码的执行顺序是什么样的!一定理解:是执行的顺序(后面会给大家说一个误区)!class Test{ int a = 5; static int num = 4; //这是一个很简单的代码,转载 2017-08-29 16:40:35 · 198 阅读 · 0 评论 -
list对象 根据多个属性就行比较
public class ComparatorLevel implements Comparator<LabelLevel> { /** * 复写比较器--根据一级编码比较,相同根据二级比较,相同根据三级比较,相同 根据四级比较 * {@inheritDoc} */ @Override public int compare(LabelLevel...原创 2018-05-11 16:32:23 · 2804 阅读 · 0 评论 -
多线程生产者消费者
1:链接地址https://blog.csdn.net/antony9118/article/details/51481884转载 2018-05-11 17:17:32 · 418 阅读 · 0 评论 -
java中Class对象详解和类名.class, class.forName(), getClass()区别
一直在想.class和.getClass()的区别,思索良久,有点思绪,然后有网上搜了搜,找到了如下的一篇文章,与大家分享。 原来为就是涉及到Java的反射~~~~~Java反射学习所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射并...转载 2018-08-21 22:10:21 · 338 阅读 · 0 评论 -
mysql递归查询
父子查询: 根据父 id 查询下面所有子节点数据;子父查询: 根据子 id 查询上面所有父节点数据; ————mysql递归查询目录结构: 创建表并添加测试数据 创建...转载 2018-08-20 19:37:45 · 90437 阅读 · 9 评论 -
线程池之 newScheduledThreadPool中scheduleAtFixedRate(四个参数)
说明:在处理消费数据的时候,统计tps,需要用一个线程监控来获得tps值,则使用了定时任务的线程池中的方法scheduleAtFixedRate(),此方法有四个参数一:简单说明ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定...转载 2018-08-15 16:59:29 · 102166 阅读 · 5 评论 -
两个map比较
/** * 用map的keySet()的迭代器(性能效率较低) * */ public void compareMap1 (){ Map<String, String> m1 = new HashMap<String, String>();//小 Map<String, String>...转载 2018-08-14 20:29:10 · 10466 阅读 · 0 评论 -
Method 中invoke方法
在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一样,去调用父类的对象也会报错,虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java是如何实现的,就学习了下Method的源代码。 在学习动态代理之前,遇到此方法Method的invoke方法 1.先检查 AccessibleObject的override属性是否为t...转载 2018-08-14 16:03:07 · 615 阅读 · 0 评论 -
拼音工具类
package com.zto.base.utils;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import...原创 2018-07-13 16:00:00 · 371 阅读 · 0 评论 -
java 函数形参传值和传引用的区别
Java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清。 (一)基本数据类型:传值,方法不会改变实参的值。[java] view plain copy public class TestFun { public static void testInt(int i){ i=5; } public static void main(String[] args) { int ...转载 2018-07-12 18:56:15 · 1414 阅读 · 0 评论 -
Java8新特性——Lambda表达式应用场景
之前在学习Java8的新特性时,十分喜欢Lambda的简洁性,而真正地用以解决项目中的技术点时,更为之惊叹不已。现在有这样的需求:从由Project这个类组成的List中取出id和name组成对应的键值对。有下面这样的实体类,简洁起见,将多余的字段和注解以及类的继承关系去除。import java.util.Date;/** * Created by Mollychin on 2018/3/...转载 2018-07-12 08:42:14 · 1522 阅读 · 1 评论 -
并发工具类(一)等待多线程完成的CountDownLatch
https://blog.csdn.net/quan7394/article/details/77973051简介CountDownLatch 允许一个或多个线程等待其他线程完成操作。应用场景假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。在这个需求中,要实现主...转载 2018-06-11 17:32:59 · 176 阅读 · 0 评论 -
mysql端加锁--select的时候,加之枷锁for update
SELECT MAX(id) from hs_label_level for updatehttps://blog.csdn.net/liqfyiyi/article/details/7948282原创 2018-05-28 20:33:30 · 1101 阅读 · 0 评论 -
处理字符串”\“
字符串展示:"formatDesc":"体育\文创",前端传过来“4,3”在内存中创建一个对象: public static Map<String, String> dictFormatMap() { Map<String, String> dictMap = new HashMap<String, String>(); ...原创 2018-05-14 11:31:28 · 377 阅读 · 0 评论 -
java.net.SocketException四大异常解决方案
Copy from http://developer.51cto.com/art/201003/189724.htmjava.net.SocketException在我们使用的时候会出现很多异常,这些会影响到我们的学习和使用。下面我们就仔细的研究一下。AD:2014WOT全球软件技术峰会北京站 课程视频发布 java.net.SocketException如何才能更好的转载 2017-08-28 14:35:02 · 2775 阅读 · 0 评论 -
日期工具类(二)
public class DayUtil { //log private static final Logger logger = LoggerFactory.getLogger(GeneralIntroductionQueryParam.class); //日期格式-日 public static final DateFormat DATE_FORMAT_DAY原创 2017-08-23 19:07:31 · 162 阅读 · 0 评论 -
JAVA线程通信
上述例题无条件的阻塞了其他线程异步访问某个方法。Java对象中隐式管程的应用是很强大的,但是你可以通过进程间通信达到更微妙的境界。这在Java中是尤为简单的。像前面所讨论过的,多线程通过把任务分成离散的和合乎逻辑的单元代替了事件循环程序。线程还有第二优点:它远离了轮询。轮询通常由重复监测条件的循环实现。一旦条件成立,就要采取适当的行动。这浪费了CPU时间。举例来说,考虑经典的序列问题,当一原创 2017-08-10 11:39:40 · 164 阅读 · 0 评论 -
JAVA多线程同步详解
当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用。达到此目的的过程叫做同步(synchronization)。像你所看到的,Java为此提供了独特的,语言水平上的支持。同步的关键是管程(也叫信号量semaphore)的概念。管程是一个互斥独占锁定的对象,或称互斥体(mutex)。在给定的时间,仅有一个线程可以获得管程。当一个线程需要锁定,它必须进入管程原创 2017-08-10 11:37:14 · 192 阅读 · 0 评论 -
接口作为类型使用
1:接口作为类型使用接口作为引用类型来使用,任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类中所实现的接口中的方法,Java 运行时系统会动态地确定应该使用哪个类中的方法,实际上是调用相应的实现类的方法。示例如下:public class Demo{ public void test1(A a) { a.doSth();原创 2017-08-09 21:03:02 · 4678 阅读 · 2 评论 -
JAVA中super详解
super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类。super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法。super 也可以用在子类的子类中,Java 能自动向上层类追溯。父类行为被调用,就好象该行为是本类的行为一样,而且调用行为不必发生在父类中,它能自动向上层类追溯。super 关键字的功能:调用父类原创 2017-08-09 20:31:42 · 1572 阅读 · 0 评论 -
JAVA自动拆箱自动装箱详解
虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单原创 2017-08-09 20:27:11 · 309 阅读 · 0 评论 -
JAVA基本运行顺序
我们以下面的类来说明一个基本的 Java 类的运行顺序:public class Demo{ private String name; private int age; public Demo(){ name = "微学苑"; age = 3; } public static void main(String[] args){原创 2017-08-09 20:22:38 · 256 阅读 · 0 评论 -
JAVA中this详解
1:this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。例如:public class Demo{ public int x = 10; public int y = 15; public void sum(){ // 通过 this 点取成员变量 int z = this.x + th原创 2017-08-09 20:17:15 · 279 阅读 · 0 评论 -
JSON的三种解析方式
一、什么是JSON?JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。JSON就是一串字符串 只不过元素会使用特定的符号标注。{} 双括号表示对象[] 中括号表示数组"" 双引号内是属性或值: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)转载 2017-08-16 17:16:27 · 472 阅读 · 0 评论 -
JAVA日期工具类
** * 日期工具类 * */public class DateUtils { //log private final static Logger logger = LoggerFactory.getLogger(DateUtils.class); //日期格式 public static final DateFormat dateFormat = new原创 2017-08-16 10:42:14 · 205 阅读 · 0 评论 -
java date类型和calendar类型区别及date格式化
Date类在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。1、使用Date类代表当前系统时间Date d = new Date();System.out.println(d);使用Date类的默认构造方法创建出转载 2017-08-16 10:37:08 · 751 阅读 · 0 评论 -
JAVA中Date详解
Java Date类的使用总结Date类表示特定的瞬间,精确到毫秒。有2种方法可以创建Date对象(这里不考虑已过时的构造函数)1、public Date()——分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。?12345@Test public转载 2017-08-16 10:20:22 · 2672 阅读 · 0 评论 -
JAVA多线程死锁详解
需要避免的与多任务处理有关的特殊错误类型是死锁(deadlock)。死锁发生在当两个线程对一对同步对象有循环依赖关系时。例如,假定一个线程进入了对象X的管程而另一个线程进入了对象Y的管程。如果X的线程试图调用Y的同步方法,它将像预料的一样被锁定。而Y的线程同样希望调用X的一些同步方法,线程永远等待,因为为到达X,必须释放自己的Y的锁定以使第一个线程可以完成。死锁是很难调试的错误,因为:通常原创 2017-08-10 11:55:11 · 200 阅读 · 0 评论 -
break,continue,return 详解
1、return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。 (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致。 (3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值转载 2017-08-10 20:25:34 · 396 阅读 · 0 评论 -
判断一个对象是否为空
package com.gj5u.publics.util; import java.util.List; /** * 判断对象是否为空 * * @author Rex * */ public class EmptyUtil { /** * 判断对象为空 * * @pa转载 2017-08-23 17:24:56 · 270 阅读 · 0 评论 -
精华详解父类和子类之间方法的调用
1)父类构造函数java中当调用某个类的构造方法的时候,系统总会调用父类的非静态初始化块进行初始化,这个调用是隐式的,而且父类的静态初始化代码块总是会被执行,接着调用父类的一个或者多个构造器执行初始化,这个调用也可以通过super进行显式调用。例如:父类代码如下:public class Creature {//父类{//非静态代码块System.out.println转载 2017-08-13 17:55:59 · 2280 阅读 · 0 评论