- 博客(24)
- 收藏
- 关注
转载 学java,这21个核心技术点你记住了?(一)
1. JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。 JVM作为java运行的基础,很难相信对于JVM一点都不了解的...
2017-09-04 17:59:00 127
转载 史上最全的JAVA面试总结
数据库类 作为后端开发,可以说数据库是重之又重。提问的比例也相当之大。所以这里先记录下这个。 如何快速导入10万条数据到MySQL数据库? 这个应该当时很紧张,居然半天说不出来。其实当时心里有一个答案了,就是存储过程。但是因为平常开发基本上没用到过这东西,所以都不敢说了。。 网上还有有...
2017-09-04 17:59:00 92
转载 JAVA面试必备的知识宝典(五)
如何实现集合排序? 你可以使用有序集合,如 TreeSet 或 TreeMap,你也可以使用有顺序的的集合,如 list,然后通过 Collections.sort() 来排序。 如何打印数组内容 你可以使用 Arrays.toString() 和 Arrays.deepToString...
2017-09-03 18:28:00 119
转载 最全的JAVA知识总结
1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心...
2017-09-03 18:28:00 108
转载 JAVA面试必备的知识宝典(三)
数据类型相关 java中int char,long各占多少字节? |类型|位数|字节数| |-|-|-| |short|2|16| |int|4|32| |long|8|64| |float|4|32 |double|8|64| |char|2|16| 64位的JVM当中,int的长度是...
2017-09-01 19:24:00 119
转载 JAVA面试必备的知识宝典(四)
FutureTask是什么 这个其实前面有提到过,FutureTask表示一个异步运算的任务。FutureTask里面可以传入一个Callable的具体实现类,可以对这个异步运算的任务的结果进行等待获取、判断是否已经完成、取消任务等操作。当然,由于FutureTask也是Runnable接口...
2017-09-01 19:24:00 110
转载 JAVA面试必备的知识宝典(二)
WeakReference与SoftReference的区别? 这点在四种引用类型中已经做了解释,这里简单说明一下即可: 虽然 WeakReference 与 SoftReference 都有利于提高 GC 和 内存的效率,但是 WeakReference ,一旦失去最后一个强引用,就会被 ...
2017-09-01 19:23:00 112
转载 JAVA面试必备的知识宝典(一)
相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩...
2017-08-31 20:12:00 136
转载 身为JAVA工作者必须了解的实战知识(十五)
Java内存模型是保障多线程安全的根基,这里仅仅是认识型的理解总结并未深入研究。 一、什么是内存模型,为什么需要它 Java内存模型(Java Memory Model)并发相关的安全发布,同步策略的规范、一致性等都来自于JMM。 1 平台的内存模型 在架构定义的内存模型中将告诉应用程...
2017-08-31 20:11:00 84
转载 身为JAVA工作者必须了解的实战知识(十四)
一、锁的劣势 锁定后如果未释放,再次请求锁时会造成阻塞,多线程调度通常遇到阻塞会进行上下文切换,造成更多的开销。 在挂起与恢复线程等过程中存在着很大的开销,并且通常存在着较长时间的中断。 锁可能导致优先级反转,即使较高优先级的线程可以抢先执行,但仍然需要等待锁被释放,从而导致它的优先级会...
2017-08-31 20:09:00 89
转载 身为JAVA工作者必须了解的实战知识(十三)
一、状态依赖性的管理 有界缓存实现的基类 [java]view plaincopy print? @ThreadSafe publicabstractclassBaseBoundedBuffer{ @GuardeBy("this")privatefinalE[]buf; @...
2017-08-30 19:30:00 106
转载 身为JAVA工作者必须了解的实战知识(十二)
一、Lock与 ReentrantLock Lock 提供一种无条件的、可轮询的、定时的、可中断的锁获取操作,所有加锁和解锁的方法都是显式的。 [java]view plaincopy print? publicinterfaceLock{ voidlock();//获取锁。 ...
2017-08-30 19:29:00 107
转载 身为JAVA工作者必须了解的实战知识(十一)
并发测试大致分为两类:安全性测试(不发生任何错误的行为)和活跃性测试(某个良好的行为终究会发生)。 安全测试 - 通常采用测试不变性条件的形式,即判断某个类的行为是否与其他规范保持一致。 活跃性测试 - 包括进展测试和无进展测试两个方面。 性能测试与活跃性测试相关,主要包括:吞吐量、响应...
2017-08-30 19:28:00 103
转载 身为JAVA工作者必须了解的实战知识(九)
一、死锁 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。百科百科 当两个以上的运算单元,双方都在等待对方停止运行,以取得系统资源,但是没有一方提前退出时,这种状况,就称为死锁。维基百科 1. 顺序死锁 最少有...
2017-08-29 19:23:00 88
转载 身为JAVA工作者必须了解的实战知识(十)
造成开销的操作包括: 1. 线程之间的协调(例如:锁、触发信号以及内存同步等) 2. 增加的上下文切换 3. 线程的创建和销毁 4. 线程的调度 一、对性能的思考 1 性能与可伸缩性 运行速度涉及以下两个指标: 某个指定的任务单元需要“多快”才能处理完成、计算资源一定的情况下,...
2017-08-29 19:23:00 119
转载 身为JAVA工作者必须了解的实战知识(八)
一、为什么GUI是单线程化 传统的GUI应用程序通常都是单线程的。 1. 在代码的各个位置都需要调用poll方法来获得输入事件(这种方式将给代码带来极大的混乱) 2. 通过一个“主事件循环(Main Event Loop)”来间接地执行应用程序的所有代码。 如果在主事件循环中调用的代码...
2017-08-29 19:22:00 170
转载 身为JAVA工作者必须了解的实战知识(七)
一、在任务与执行策略之间的隐性解耦 有些类型的任务需要明确地指定执行策略,包括: . 依赖性任务。依赖关系对执行策略造成约束,需要注意活跃性问题。要求线程池足够大,确保任务都能放入。 . 使用线程封闭机制的任务。需要串行执行。 . 对响应时间敏感的任务。 . 使用ThreadLoca...
2017-08-28 20:20:00 100
转载 身为JAVA工作者必须了解的实战知识(五)
一、 在线程中执行任务 无限制创建线程的不足 .线程生命周期的开销非常高 .资源消耗 .稳定性 二、Executor框架 Executor基于生产者-消费者模式,提交任务的操作相当于生产者,执行任务的线程则相当于消费者。 1. Executors 返回 ExecutorServi...
2017-08-28 20:19:00 113
转载 身为JAVA工作者必须了解的实战知识(六)
Java没有提供任何机制来安全地(抢占式方法)终止线程,虽然Thread.stop和suspend等方法提供了这样的机制,但是由于存在着一些严重的缺陷,因此应该避免使用。但它提供了中断Interruption机制,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。 一、任务取消 取...
2017-08-28 20:19:00 119
转载 身为JAVA工作者必须了解的实战知识(四)
一、同步容器类 1. 同步容器类的问题 线程容器类都是线程安全的,但是当在其上进行符合操作则需要而外加锁保护其安全性。 常见符合操作包含: . 迭代 . 跳转(根据指定顺序找到当前元素的下一个元素) . 条件运算 迭代问题可以查看之前的文章 《Java ConcurrentMo...
2017-08-27 22:37:00 107
转载 身为JAVA工作者必须了解的实战知识(一)
一、什么是线程安全性 编写线程安全的代码 核心在于要对状态访问操作进行管理。 共享,可变的状态的访问 - 前者表示多个线程访问, 后者声明周期内发生改变. 线程安全性 核心概念是正确性。某个类的行为与其规范完全一致。 多个线程同时操作共享的变量,造成线程安全性问题。 * 编写线程...
2017-08-27 19:46:00 140
转载 身为JAVA工作者必须了解的实战知识(二)
一、可见性 什么是可见性? Java线程安全需要防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且需要确保当一个线程修改了对象的状态后,其他线程可以看到发生的状态变化。 后者就是可见性的描述即多线程可以实时获取其他线程修改后的状态。 *** 待补充 两个工人同时记录生产产...
2017-08-27 19:46:00 98
转载 身为JAVA工作者必须了解的知识(三)
一、设计线程安全的类 在设计线程安全类的过程中,需要包含以下三个基本要素: . 找出构成对象状态的所有变量。 . 找出约束状态变量的不变性条件。 . 建立对象状态的并发访问管理策略。 分析对象的状态,首先从对象的域开始。变量按作用域划分: . 全局变量 . 局部变量 . 方法...
2017-08-27 19:46:00 94
转载 百分之九十九的JAVA工作者都不知道的知识
1.Core Java部分 这是最基础的,对于一个java高级开发/设计人员,你需要对这一部分达到精通的水平,重点内容如下: a.面向对象编程思想(封装继承多态接口) b.字符串处理 c.java.lang包,java.util包等常用包 4.java异常处理 2.Java高级部分 a.Jav...
2017-08-27 19:45:00 157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人