- 博客(16)
- 收藏
- 关注
原创 史上最全的JAVA面试总结
数据库类作为后端开发,可以说数据库是重之又重。提问的比例也相当之大。所以这里先记录下这个。如何快速导入10万条数据到MySQL数据库?这个应该当时很紧张,居然半天说不出来。其实当时心里有一个答案了,就是存储过程。但是因为平常开发基本上没用到过这东西,所以都不敢说了。。网上还有有一些答案说批处理,通过sql文件进行导入等等,这个有时间可以去验证一番。mys
2017-09-04 18:00:06
327
原创 学java,这21个核心技术点你记住了?(一)
1. JVM相关(包括了各个版本的特性)对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。 JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必
2017-09-04 17:59:38
221
转载 身为JAVA工作者必须了解的实战知识(十二)
一、Lock与 ReentrantLockLock 提供一种无条件的、可轮询的、定时的、可中断的锁获取操作,所有加锁和解锁的方法都是显式的。[java]view plaincopyprint?publicinterfaceLock {voidlock();// 获取锁。voidlockInterruptibly()throwsInterrupte
2017-08-31 20:19:23
254
转载 身为JAVA工作者必须了解的实战知识(十一)
并发测试大致分为两类:安全性测试(不发生任何错误的行为)和活跃性测试(某个良好的行为终究会发生)。安全测试 - 通常采用测试不变性条件的形式,即判断某个类的行为是否与其他规范保持一致。活跃性测试 - 包括进展测试和无进展测试两个方面。性能测试与活跃性测试相关,主要包括:吞吐量、响应性、可伸缩性。一、正确性测试找出需要检查的不变条件和后延条件。[j
2017-08-31 20:18:52
222
转载 身为JAVA工作者必须了解的实战知识(十)
造成开销的操作包括:1. 线程之间的协调(例如:锁、触发信号以及内存同步等)2. 增加的上下文切换3. 线程的创建和销毁4. 线程的调度一、对性能的思考1 性能与可伸缩性运行速度涉及以下两个指标:某个指定的任务单元需要“多快”才能处理完成、计算资源一定的情况下,能完成“多少”工作。可伸缩性:当增加计算资源时(例如:
2017-08-31 20:18:06
233
转载 身为JAVA工作者必须了解的实战知识(九)
一、死锁所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。百科百科当两个以上的运算单元,双方都在等待对方停止运行,以取得系统资源,但是没有一方提前退出时,这种状况,就称为死锁。维基百科1. 顺序死锁最少有两个锁,一个线程获取到A锁需要获取B锁才能进行操作,而另外一个线程获取到了B锁,需要获
2017-08-31 20:17:36
215
转载 身为JAVA工作者必须了解的实战知识(八)
一、为什么GUI是单线程化传统的GUI应用程序通常都是单线程的。1. 在代码的各个位置都需要调用poll方法来获得输入事件(这种方式将给代码带来极大的混乱)2. 通过一个“主事件循环(Main Event Loop)”来间接地执行应用程序的所有代码。如果在主事件循环中调用的代码需要很长时间才能执行完成,那么用户界面就会“冻结”,直到代码执行完成。这是因为只有当执
2017-08-31 20:17:10
184
转载 身为JAVA工作者必须了解的实战知识(七)
一、在任务与执行策略之间的隐性解耦有些类型的任务需要明确地指定执行策略,包括:. 依赖性任务。依赖关系对执行策略造成约束,需要注意活跃性问题。要求线程池足够大,确保任务都能放入。. 使用线程封闭机制的任务。需要串行执行。. 对响应时间敏感的任务。. 使用ThreadLocal的任务。1. 线程饥饿死锁线程池中如果所有正在执行任务的线程都由
2017-08-31 20:16:33
189
转载 身为JAVA工作者必须了解的实战知识(六)
Java没有提供任何机制来安全地(抢占式方法)终止线程,虽然Thread.stop和suspend等方法提供了这样的机制,但是由于存在着一些严重的缺陷,因此应该避免使用。但它提供了中断Interruption机制,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。一、任务取消取消操作的原因:. 用户请求取消. 有时间限制的操作. 应用程序事件
2017-08-29 19:28:52
211
转载 身为JAVA工作者必须了解的实战知识(五)
一、 在线程中执行任务无限制创建线程的不足.线程生命周期的开销非常高.资源消耗.稳定性二、Executor框架Executor基于生产者-消费者模式,提交任务的操作相当于生产者,执行任务的线程则相当于消费者。1. Executors 返回 ExecutorService2. ExecutorService方法submit、exec
2017-08-29 19:28:21
252
转载 身为JAVA工作者必须了解的实战知识(四)
一、同步容器类1. 同步容器类的问题线程容器类都是线程安全的,但是当在其上进行符合操作则需要而外加锁保护其安全性。常见符合操作包含:. 迭代. 跳转(根据指定顺序找到当前元素的下一个元素). 条件运算迭代问题可以查看之前的文章《Java ConcurrentModificationException 异常分析与解决方案》二
2017-08-29 19:27:52
183
转载 身为JAVA工作者必须了解的知识(三)
一、设计线程安全的类在设计线程安全类的过程中,需要包含以下三个基本要素:. 找出构成对象状态的所有变量。. 找出约束状态变量的不变性条件。. 建立对象状态的并发访问管理策略。分析对象的状态,首先从对象的域开始。 变量按作用域划分:. 全局变量. 局部变量. 方法行参. 异常处理参数1. 收集同步需求如果不了
2017-08-28 20:27:09
218
转载 身为JAVA工作者必须了解的实战知识(二)
一、可见性什么是可见性?Java线程安全需要防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且需要确保当一个线程修改了对象的状态后,其他线程可以看到发生的状态变化。 后者就是可见性的描述即多线程可以实时获取其他线程修改后的状态。*** 待补充 两个工人同时记录生产产品总数问题1. 失效数据可见性出现问题就是其他线程没有获取到修改后的状态,
2017-08-28 20:26:24
217
转载 身为JAVA工作者必须了解的实战知识(一)
一、什么是线程安全性编写线程安全的代码核心在于要对状态访问操作进行管理。共享,可变的状态的访问 - 前者表示多个线程访问, 后者声明周期内发生改变.线程安全性核心概念是正确性。某个类的行为与其规范完全一致。多个线程同时操作共享的变量,造成线程安全性问题。* 编写线程安全性代码的三种方法:不在线程之间共享该状态变量将状态变量
2017-08-28 20:25:26
477
原创 百分之九十九的JAVA工作者都不知道的知识
1.Core Java部分 这是最基础的,对于一个java高级开发/设计人员,你需要对这一部分达到精通的水平,重点内容如下: a.面向对象编程思想(封装继承多态接口) b.字符串处理 c.java.lang包,java.util包等常用包 4.java异常处理 2.Java高级部分 a.Java I/O流 b.Java多线程技术 c.Java网络编程 d.Java Swing 后两项可以了解即可,
2017-08-27 19:48:25
320
原创 你真的懂JAVA吗
宏观方面一、 JAVA。要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您 对JAVA的所有包都浏览一下,知道大概的API,这样您就发现其实您想实现的很多功能
2017-08-26 19:15:42
844
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人