--------【 java 基 础 】
文章平均质量分 55
dandanPMO
这个作者很懒,什么都没留下…
展开
-
java基础之集合类
java集合主要由两个接口派生而出:Collection和Map,也就是说Collection和Map是所有集合类的根接口。Iterator也是集合框架的成员,用来遍历Collection集合Collection接口Set无序集合,且元素不可重复,可以说Set就是Collection,只是行为略有不同,即元素不能重复HashSet特点 无序 多线程中,两个货以上线程操作一集合,需要程序原创 2016-04-30 19:56:42 · 518 阅读 · 1 评论 -
jvm体系结构
jvm体系结构用一张图来表示就是: JVM的内部体系结构分为三部分类装载器(ClassLoader)子系统 作用: 用来装载.class文件,分类java自带加载器:根、扩展、系统类加载器 根类记载器:使用c++编写,程序员无法在java代码中获得该类 扩展加载器:使用java代码实现 系统加载器(应用加载器):使用java代码实现 用户自原创 2016-05-27 10:18:02 · 578 阅读 · 2 评论 -
线程同步详解
线程同步方式有很多种,其中一种便是synchronized,下面先用一个例子来说一下它的两种应用场景:package thread;public class TestSync implements Runnable{ Timer timer=new Timer(); public static void main(String args[]){ TestSync te原创 2016-05-31 16:59:13 · 1148 阅读 · 1 评论 -
Reentrantlock源码解析
Reentrantlock及可重入锁,读源码首先要看下它的outline: 其核心就是公平锁fairSync和非公平送NonFairSync 我们可以看到这两个锁有共同的方法:lock();fairSync final void lock() { acquire(1); }NonfairSyncfinal void lock() {原创 2016-05-31 17:09:15 · 795 阅读 · 2 评论 -
NIO之Buffer channel
java NIO的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。 正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示: Channel的实现这些是Java NIO中最重要的通道的实现: • FileChannel • D原创 2016-05-31 17:17:52 · 635 阅读 · 2 评论 -
jvm调优策略
jvm常用调优工具有:Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。 VisualVM:JDK自带,功能强大,与JProfiler类似,推荐。 一般情况下调优都会首先看算法,多线程,集群。也就是常说的我们优原创 2016-08-27 18:55:43 · 810 阅读 · 1 评论 -
验证码暴破、撞库
解决思路: 1、每次产生的验证码都做及时清除缓存 2、用户密码做MD5处理 3、用户登录次数限制@ResponseBody @RequestMapping(value = "/login", method = RequestMethod.POST) public ApiResult login(@RequestParam(value = "user_name") String原创 2016-10-24 15:31:31 · 4376 阅读 · 6 评论