java基础知识
LUK流
大数据/java web
展开
-
IDEA的使用之spring中ClassPathXmlApplicationContext读取路径
之前习惯使用eclipse的应用以后总是会把spring的配置文件放在src目录下,然后无论怎么写路径问题都无法读取spring.xml。正确的配置文件放在resources目录下:resource目录可以在以下界面中可以自定义:...原创 2018-10-23 16:43:10 · 9166 阅读 · 2 评论 -
jdk1.8中的hashmap和concurrenthashmap以及hashtable和hashset
1.hashmap当冲突的数据较少时使用的是链式冲突避免的方式,当数据量很大的时候用的是红黑树。hashmap放入数据:put方法/** * Associates the specified value with the specified key in this map. * If the map previously contained a mapping for ...原创 2019-05-02 15:33:50 · 566 阅读 · 0 评论 -
HashMap与ConcurrentHashMap1.7的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable。从ConcurrentHash...转载 2019-04-27 13:17:43 · 151 阅读 · 0 评论 -
内部类和外部类
外部类:最普通的,我们平时见到的那种类,就是在一个后缀为.java的文件中,直接定义的类,比如public class Student { private String name; private int age;}内部类:内部类,顾名思义,就是包含在外部类中的类,就叫做内部类。内部类有两种,一种是静态内部类,一种是非静态内部类。public class School { ...原创 2019-04-10 21:13:34 · 14302 阅读 · 0 评论 -
java中的Callable和Future创建线程
1.Callable类似于Runnable,但是它有返回值,Runnable没有。2.new Thread(futureTask);的方式来创建FuntureTask任务,FuntureTask是一个实现了Runnable和Future接口的类3.call方法可以抛出异常,run方法不可以。4.Callable规定(重写)的方法是call(),Runnable规定(重写)的方法是run()。...原创 2019-01-24 21:53:22 · 2242 阅读 · 0 评论 -
java守护线程
1.守护进程是什么Java将线程分为User线程和Daemon线程两种。其中Daemon thread即守护线程。1.所谓守护线程就是运行在程序后台的线程,程序的主线程Main(比方java程序一开始启动时创建的那个线程)不会是守护线程2.Daemon thread在Java里面的定义是,如果虚拟机中只有Daemon thread 在运行,则虚拟机退出。通常Daemon线程用来为User线...转载 2018-10-19 17:34:59 · 2199 阅读 · 1 评论 -
BlockingQueue源码解析
本篇将详细介绍BlockingQueue,以下是涉及的主要内容:BlockingQueue的核心方法阻塞队列的成员的概要介绍详细介绍DelayQueue、ArrayBlockingQueue、LinkedBlockingQueue的原理线程池与BlockingQueue1、初识阻塞队列在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传...转载 2018-11-16 14:59:49 · 665 阅读 · 1 评论 -
从java迭代器与集合之间的关系延申到hadoop中的应用
(1)Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。例如,如果没有使用Iterator,遍历一个数组的方法是使用索引: for(int i=0; i<array.size(); i++) { ... get(i) ... } 客户端都必须事先知道集合的内部结构,访问代码和集合本身是紧耦合,无法将访...转载 2018-11-09 20:02:48 · 248 阅读 · 0 评论 -
spring配置的顺序决定了类被初始化的顺序
spring的配置顺序是one,compoent-scan(three类被配置了@component标签,会被他扫描到并自动配置进来),two。类Three的配置@Component,所以在spring配置了Component-scan扫描器以后就可以自动被配置进来。注意:Three有两个构造函数。默认调用无参构造函数。...原创 2018-10-23 18:26:48 · 3220 阅读 · 1 评论 -
java之volatile
一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因...转载 2018-10-23 17:01:40 · 160 阅读 · 0 评论 -
关于String的连续追问
1.String s= "123"和String str = new String(“123”)的区别可能你会疑惑为什么是上面的答案?那么,这等价于问你一个问题,String s = new String(“123”);分配了几次内存?答案是两次。第一次在栈中分配内存存放了一个"123",这是一个共享的数据,所有的String s = “123”;都会指向这个"123";第二次是在堆中分配...原创 2019-10-08 21:30:03 · 356 阅读 · 0 评论