Java初阶
Drizzle_Sky
这个作者很懒,什么都没留下…
展开
-
Java 内存溢出和泄漏通俗理解
昨天和一个实验室的哥们讨论内存溢出和泄漏的定义和区别,居然发现自己都还不能解释明白,然后我想了想,查了些资料,有了一个通俗的理解方案。内存溢出抽象的说:一个应用需要的内存量,可Jvm 根据现有的可用的内存资源满足不了应用的需求,就产生了内存溢出。 形象的说:譬如 Jvm 现在可提供的内存资源就像是一个容量500ml的杯子,然后你现在的应用需要原创 2017-12-31 13:34:03 · 339 阅读 · 0 评论 -
通俗谈 Spring IOC ,自己动手实现简版IOC
因为要面试JAVA岗工程师,对Spring 的IOC 原理还是必须明确的,所以就花了点时间自己认真摸索了下。Spring IOC (Inversion Of Control),控制反转。想起初学IOC的时候,一头雾水,什么是IOC?通俗的讲:就是本来应该有程序员自己new 一个对象,但是现在你不需要new 了,而是框架帮你new 了对象。这种对象的创建(其他管理)权利的给了框架,就被称为IOC(控原创 2018-01-18 22:05:03 · 394 阅读 · 0 评论 -
关于JAVA多线程的实现和梳理
针对JAVA研发工程师岗位,多线程实现方式也是一个常问的问题。虽然基础,但我还是想记录一下。方法如下:1.继承 Thread 类,重写run 方法。2.实现 Runnable 接口,重写run方法。3.实现 Callable接口,重写call方法,配合FutureTask一起完成工作。4.使用线程池实现多线程。一.继承 Thread 类,重写run 方法。1.代原创 2018-01-09 11:09:45 · 344 阅读 · 0 评论 -
关于 JAVA的代理 静态代理 动态代理 cglib 的学习
想到之前学习spring的时候,了解有aop面向切面编程的知识点,但自己却一直没有深刻去理解,今天学习了一下,发现和动态代理有关,然后就在网上一顿搜索,自己对代理的相关知识又清晰了不少。一.代理模式:是JAVA常用的一种设计模式。特征:1.代理类与委托类有同样的接口。2.代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。3.代理类与委托类之间通原创 2018-01-08 15:31:47 · 275 阅读 · 0 评论 -
理解JAVA HashMap的原理,根据源码原理 自己 动手写一个 MyHashMap
如果各位对不熟悉JAVA的 HashMap原理和实现,那么这篇文章可能值得一看。HashMap 简介: 基于哈希表的 Map 接口的非同步实现。允许使用null值和null键。键不允许重复,值允许重复。存储是无序的,是按照哈希散列排序的。底层数据结构:Hash链表。图示:一 :实现原理(结合JDK源码片段):1.初始化HashMap : 更具给定的参数初始化一个数据类型为N原创 2018-01-08 13:15:26 · 1250 阅读 · 0 评论 -
关于JAVA的守护线程
因为听到一个同学的面试题中有关于JAVA的守护线程,刚好我之前对守护线程也比较陌生,今天就花点时间一起探索下守护线程相关的知识。一.守护线程:顾名思义,它的功能主要是守护,一般功能是在后台监督前台的线程。当JVM中不存在一般线程的时候,JVM的生命就终结了。二.JAVA中的线程种类: 1.守护线程 2.非守护线程(一般用户线程)。三.守护线程的优先级:极低,低到JVM自动可以将其结束原创 2018-01-16 15:37:37 · 264 阅读 · 0 评论 -
关于JAVA中的transient关键字 静态变量
刚才在学习 HashMap 源码的过程中,发现了一个transient 关键字,发现自己不熟悉,然后也又开始了挖掘。一.transient 的使用总结1、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。2、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列原创 2018-01-07 16:01:33 · 935 阅读 · 0 评论 -
JAVA集合和Map类关系梳理和总结
看到个JAVA研发的面试题,是关于JAVA集合相关知识,然后就花了几个小时查阅资料和看JDK类之间的关系,得出下面的一结果,用于记录和分享。1.这是Map的相关类2.这是Collection的相关类3.下面是各个类的差别总结:原创 2018-01-07 14:40:29 · 357 阅读 · 1 评论 -
以Integer为例 辨析JAVA中的自动装拆箱操作 Auto Box/Unbox
老铁,你确定你懂JAVA的Auto Box / Unbox吗? 那么先来做几个小题public class Autobox_Test { public static void main(String[] args) { Integer c = 3; Integer d = 3; Integer e = 365; I原创 2018-01-05 17:17:54 · 750 阅读 · 0 评论 -
一起来搞明白JAVA抽象类和接口
和老师聊了几个小时后,明白自己最近学习方面的广度是够了,但深度确还差着很大的火候。所以开始着手一些身边的基础问题。今天我来说说自己关于JAVA抽象类和接口。抽象类:定义:有abstract修饰的类,我们称之为抽象类 如: abstract class Test{}; 。 方法:抽象类可以有具体方法和抽象方法 。 抽象方法如: abstract void play(); 。变量:和原创 2018-01-04 14:40:33 · 2616 阅读 · 0 评论 -
JVM中关于内存的几个重要参数
作为一个把JAVA当做自己的主要语言的程序猿,必要是还是得懂些JVM的相关知识,今天就记录一下JVM的几个内存参数。如:-vmargs-Xms256M-Xmx512M-XX:PermSize=64M-XX:MaxPermSize=512M-vmargs 告诉JVM下面是你要设置的参数-Xms256M JVM能初始分配的堆内存为256M-Xmx512M JVM能最大分配的对堆内存为5原创 2018-01-05 12:25:24 · 557 阅读 · 0 评论 -
关于JAVA中sleep和wait
脑壳疼,今天傍晚看到sleep和wait时,头脑中的概念也的确是模糊不清,然后又是一顿搜索,明白了不少。1.sleep 是属于Thread类,而wait是属于Object类的且必须和notify或notifyall 一起搭配使用。sleep是线程控制自身的流程,而wait则属于线程间通信。该线程调用wait后将释放该对象的锁,等待指定的时间或者其他获得该对象锁的线程notify或notif原创 2018-01-04 17:42:12 · 210 阅读 · 0 评论 -
用JAVA 实现一个简版数据库连接池
在JAVA工程师的面试当中,数据库连接池的实现,肯定也是多线程等待超时模式的一个重要实现案例,通过网上的查阅,对数据连接池有了一定的了解,然后就自己写了一个简陋版,以供理解。下面贴出代码:1.创建数据库连接的驱动类,在真实环境中有数据库厂商提供驱动包。如mysql:mysql-connectorxxxx.jarConnectDriver(通过动态代理,对commit方法进行装饰):import j...原创 2018-02-06 11:51:11 · 630 阅读 · 1 评论