java
阿T_smile
希望自己可以在技术的路上走得远一点,持续学习!
展开
-
StringUtils中 isNotEmpty 和isNotBlank的区别
StringUtils中 isNotEmpty 和isNotBlank的区别转载 2017-12-16 12:15:49 · 151 阅读 · 0 评论 -
java中符号的总结
转载自:https://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.htmljava中有三种移位运算符<< : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> ...转载 2018-06-10 10:35:39 · 6113 阅读 · 1 评论 -
Java并发编程:并发容器之CopyOnWriteArrayList
转载自:http://www.cnblogs.com/dolphin0520/p/3938914.html Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWr...转载 2018-08-05 11:09:21 · 123 阅读 · 0 评论 -
ThreadPoolExecutor线程池之submit方法
转载自:https://www.cnblogs.com/yulinfeng/p/7039979.htmljdk1.7.0_79 在上一篇《ThreadPoolExecutor线程池原理及其execute方法》中提到了线程池ThreadPoolExecutor的原理以及它的execute方法。本文解析ThreadPoolExecutor#submit。 对于一个任务的执行有时我们不...转载 2018-08-05 11:15:43 · 1394 阅读 · 0 评论 -
实现Callable接口,什么时候调用call()方法
最近,项目中经常接触线程,特别是在推送MQ的时候,都是使用线程来执行操作。在这里,用一个简单的例子来整理一个很简单的使用方法。代码如下:public class TestThread { public static void main(String[] args) { //使用main方法模拟Callable的call()方法的调用 CallableTe...原创 2018-08-15 23:00:30 · 12657 阅读 · 0 评论 -
并发包阻塞队列之LinkedBlockingQueue
转载自:https://www.cnblogs.com/yulinfeng/p/7004383.html作者:OKevinjdk1.7.0_79 在上文《10.并发包阻塞队列之ArrayBlockingQueue》中简要解析了ArrayBlockingQueue部分源码,在本文中同样要介绍的是Java并发包中的阻塞队列LinkedBlockingQueue。ArrayBlockin...转载 2018-09-16 10:44:15 · 195 阅读 · 0 评论 -
并发包阻塞队列之ArrayBlockingQueue
转载自:https://www.cnblogs.com/yulinfeng/p/6986975.html作者:OKevinjdk1.7.0_79 Java并发包中的阻塞队列一共7个,当然他们都是线程安全的。 ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列。 LinkedBlockingQueue:一个由链表结构组成的有界阻塞队列。 P...转载 2018-09-16 10:53:37 · 260 阅读 · 0 评论 -
并发包非阻塞队列ConcurrentLinkedQueue
转载自:https://www.cnblogs.com/yulinfeng/p/6974205.html作者:OKevinjdk1.7.0_79 队列是一种非常常用的数据结构,一进一出,先进先出。 在Java并发包中提供了两种类型的队列,非阻塞队列与阻塞队列,当然它们都是线程安全的,无需担心在多线程并发环境所带来的不可预知的问题。为什么会有非阻塞和阻塞之分呢?这里的非阻塞与...转载 2018-09-16 10:55:54 · 531 阅读 · 0 评论 -
ThreadPoolExecutor线程池原理及其execute方法
转载自:https://www.cnblogs.com/yulinfeng/p/7021293.html作者:OKevinjdk1.7.0_79 对于线程池大部分人可能会用,也知道为什么用。无非就是任务需要异步执行,再者就是线程需要统一管理起来。对于从线程池中获取线程,大部分人可能只知道,我现在需要一个线程来执行一个任务,那我就把任务丢到线程池里,线程池里有空闲的线程就执行,没有空...转载 2018-09-16 11:10:11 · 1369 阅读 · 0 评论 -
ThreadPoolExecutor线程池之submit方法
转载自:https://www.cnblogs.com/yulinfeng/p/7039979.html作者:OKevinjdk1.7.0_79 在上一篇《ThreadPoolExecutor线程池原理及其execute方法》中提到了线程池ThreadPoolExecutor的原理以及它的execute方法。本文解析ThreadPoolExecutor#submit。 对于一...转载 2018-09-16 11:12:43 · 237 阅读 · 0 评论 -
Java中的Future模式
转载自:https://www.cnblogs.com/yulinfeng/p/7045648.html作者:OKevinjdk1.7.0_79 本文实际上是对上文《13.ThreadPoolExecutor线程池之submit方法》的一个延续或者一个补充。在上文中提到的submit方法里出现了FutureTask,这不得不停止脚步将方向转向Java的Future模式。 Fu...转载 2018-09-16 11:14:36 · 560 阅读 · 0 评论 -
JDK源码阅读顺序
转载自:https://blog.csdn.net/qq_21033663/article/details/79571506很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起。以下为小编整理的通常所需阅读的源码范围。 标题为包名,后面序号为优先级1-4,优先级递减 1、java.lang1) Object 12) String 13) AbstractStringBuilde...转载 2018-06-17 11:03:57 · 1600 阅读 · 0 评论 -
jdk1.8.0_45源码解读——ArrayList的实现
转载自:https://www.cnblogs.com/CherishFX/p/4725394.htmljdk1.8.0_45源码解读——ArrayList的实现一、ArrayList概述 ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个Arr...转载 2018-06-09 17:38:55 · 189 阅读 · 0 评论 -
使用tomcat插件报错问题
今天,在搭建一个商城项目的过程中,遇到了这么一个问题java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext我是在service层启动的tomcat插件,由于习惯原创 2018-01-19 21:49:43 · 403 阅读 · 0 评论 -
深入理解Java中的IO
深入理解Java中的IO引言: 对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务 < Thinking in Java > 本文的目录视图如下:Java IO概要 a.Java IO中常用的类 b.Java流类的类结构图1.流的概念和作用2.Java IO所采用的模型 :3.IO流的分类4.Java IO流对象 1.输入字节流In...转载 2018-02-28 10:08:23 · 114 阅读 · 0 评论 -
深入理解接口与抽象类
接口与抽象类接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 在Java的继承、封装、多态抽象四大特征中,抽象作为面向对象编程的一大特征,是非常重要的组成部分。而抽象类又是抽象的典型代表,接下来将深入剖析Java中的抽象类,同时了解Java中抽象类与接口的区别,与其各自运用的环境。本文将按照下面顺序依次阐述:一、抽象类二、接口三、接口与抽象类区别四、抽象类与接口的运用环...转载 2018-02-28 10:34:17 · 361 阅读 · 0 评论 -
一位资深程序员大牛给予Java初学者的学习建议
这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议? 今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后...转载 2018-03-13 11:51:53 · 845 阅读 · 2 评论 -
Java 堆和栈的区别
版权声明:本文为博主原创文章,欢迎转载和分享,转载请标明出处! https://blog.csdn.net/u011546655/article/details/521704701、概述在Java中,内存分为两种,一种是栈内存,另一种就是堆内存。2、堆内存1.什么是堆内存?12堆内存是是Java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就...转载 2018-03-28 10:14:32 · 126 阅读 · 0 评论 -
阿里历年经典Java面试题汇总
转载自:原文:blog.csdn.net/sinat_35512245/article/details/60325685Volatile的特征:A、禁止指令重排(有例外) B、可见性Volatile的内存语义:当写一个volatile变量时,JMM会把线程对应的本地内存中的共享变量值刷新到主内存。当读一个volatile变量时,JMM会把线程对应的本地内存置为无效,线程接下来将从主内存中读取共享变...转载 2018-04-23 17:03:30 · 108 阅读 · 0 评论 -
String,StringBuffer,StringBuilder的区别及其源码分析(二)
转载自:http://www.cnblogs.com/Wilange/p/7572125.html4.线程安全与非安全 StringBuffer是线程安全的,而StringBuilder是非线程安全的,至于原因我们依然可以从它们的源码中找到。StringBuffer类的部分源码 1 public synchronized int length() { 2 return ...转载 2018-05-10 11:41:29 · 335 阅读 · 0 评论 -
图解HashMap和HashSet的内部工作机制
转载自:原文链接: Arulkumaran Kumaraswamipillai 翻译: ImportNew.com - 齐帜背单词吧译文链接: http://www.importnew.com/21841.htmlHashMap 和 HashSet 内部是如何工作的?散列函数(hashing function)是什么?HashMap 不仅是一个常用的数据结构,在面试中也是热门话题。Q1. Hash...转载 2018-05-22 15:26:08 · 212 阅读 · 0 评论 -
Java并发编程:Callable、Future和FutureTask
Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Call...转载 2018-06-07 21:43:55 · 125 阅读 · 0 评论 -
Java并发编程:并发容器之ConcurrentHashMap
JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开始针对多线程并发访问设计,提供了并发性能较好的并发容器,引入了java.util.concurrent包。与Vector和Hash...转载 2018-06-07 21:58:23 · 215 阅读 · 0 评论 -
Java性能优化的50个细节(珍藏版)
转载自:https://www.toutiao.com/i6595499804082569742/在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:...转载 2018-10-28 19:56:57 · 180 阅读 · 0 评论