自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Java框架 --- Spring AOP原理

Spring AOP原理package com.imooc.framework.aop; import org.aopalliance.intercept.Joinpoint; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.a...

2019-05-11 00:04:38 698

原创 Java框架 --- Spring IOC原理

IOC原理

2019-05-10 23:52:25 443

原创 Java常用类库与技巧 --- Java的IO机制

Java的IO机制

2019-05-10 22:51:56 143

原创 Java常用类库与技巧 --- J.U.C包的梳理

J.U.C包的梳理

2019-05-10 22:31:34 155

原创 Java常用类库与技巧 --- HashTable

HashTable在java.util.concurrent包中

2019-05-10 22:17:26 146

原创 Java常用类库与技巧 --- HashMap

HashMapHashMap : 内部结构源码通过数组Node<k,v>[] table (java8 之后叫Node)和链表Set<Map.Entry<k,v>> entrySet 组合成的复合节点如果链表的大小(默认是8)是 8 则会被改造成红黑色,如果小于6 则又会被改造成链表。以保证更高的性能。HashMap 在首次被使用的...

2019-05-10 22:04:33 145

原创 Java常用类库与技巧 --- Collection体系

Collection体系如何优化算法,以空间换时间。

2019-05-09 22:47:34 119

原创 Java常用类库与技巧 --- Java异常要点分析

Java异常要点分析

2019-05-09 22:30:38 211

原创 Java常用类库与技巧 --- Java异常体系

Java异常体系

2019-05-09 22:19:11 148

原创 Java多线程与并发原理 --- Java线程池

Java线程池第五个是 只有在JDK 8 中才引入的方法。Fork/Join 框架在 JDK 7中才有的。

2019-05-08 21:21:48 235

原创 Java多线程与并发原理 --- CAS

CAS(Co'mpare and Swap)一种高效实现线程安全性的方法1、支持原子更新操作、适用于计数器、序列发生器等场景。2、属于乐观锁机制,号称 lock - free3、CAS操作失败时由开发者决定是继续尝试,还是执行别的操作。悲观锁:CAS 多数情况下对开发者来说是透明的。在使用CAS 前要考虑ABA 问题 是否影响程序并发的正确性,如果需要...

2019-05-08 20:52:33 237

原创 Java多线程与并发原理 --- jmm的内存可见性

Java 内存模型 JMM如上是线程不安全的 如果想线程安全:1、两个方法中加上修饰符 synchronized2、变量加上 volatile 修饰符...

2019-05-08 20:39:28 146

原创 Java多线程与并发原理 --- synchronized 与 ReentrantLock 的区别

synchronized 与 ReentrantLock 的区别?ReentrantLock (再入锁)1、位于 java.util.concurrent.locks 包2、和CountDownLatch 、FuntureTask、Semaphore 一样基于AQS 实现。3、能够实现比Synchronized 更细粒度的控制,如控制fairness。4、调用lock()之后,...

2019-05-08 20:13:23 188

原创 Java多线程与并发原理 --- synchronized底层实现原理

synchronized底层实现原理?实现 synchronized 的基础1、java对象头2、Monitor对象在内存中的布局1、对象头2、实例数据3、对齐填充一般而言,synchronized 使用的锁对象是 存储在java对象头里面的,其主要结构是由 Mark Word 和 Class Metadata AddressMonitor : 每个java...

2019-05-08 19:42:46 233

原创 Java多线程与并发原理 --- synchronized

synchronized线程安全问题的主要诱因?1、存在共享数据(也称 临界资源)2、存在多条线程共同操作这些共享资源解决问题的根本方法:同一时刻有且只有一条线程处理这些共享数据,其他线程只有等到改线程处理完,才能对共享数据进行操作。互斥锁的特性:互斥性:即是在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制。这样在同一时间只有一个线程对需要同...

2019-05-07 23:03:25 142

原创 Java多线程与并发 --- interrupt 函数

interrupt 函数如何中断线程?已经被抛弃的方法:一、通过调用 stop()方法停止线程stop 太过于暴力且不安全的,使得被停止的线程来不及清理,会马上释放锁,引发数据不同步的问题二、suspend() 方法 resume ()方法目前使用的方法:一、interrupt (),通知线程应该中断了public class InterruptDemo {...

2019-05-07 21:35:15 185

原创 Java多线程与并发 --- yield 函数

yield 函数yield 对锁行为不会有影响,yield 不会让出当前线程占用的锁

2019-05-07 21:23:07 204

原创 Java多线程与并发 --- notify 和 notifyall 的区别

notify 和 notifyall 唤醒锁notify 和 notifyall 的区别先明白两个概念:锁池:EntryList等待池:WaitSet这个时候 再来看 notify 和 notifyall 的区别:notifyall : 会让所有处于等待池的线程全部进入锁池去竞争获取锁的机会notify : 只会随机选取一个处于等待池中的线程进入锁池中...

2019-05-07 21:16:19 184

原创 Java多线程与并发 --- sleep 和 wait 的区别

sleep 和 wait 的区别?基本差别:sleep 是 Thread 类的方法wait 是 Object 类的方法sleep 可以在任何地方使用wait 只能在 synchronized 方法 或者 synchronized 块中使用最主要的本质区别:Thread.sleep 只会让出CPU ,不会导致锁行为的改变Object.wait 不仅让出CPU ,还会释...

2019-05-07 20:57:31 152

原创 Java多线程与并发 --- 线程的状态

在一个已经结束的线程上再次启动线程会报异常

2019-05-07 20:40:23 411

原创 Java多线程与并发 --- 如何实现处理线程的返回值

如何实现处理线程的返回值?一、主线程等待法。缺点,需要自己实现等待的逻辑,等待的变量如果过多,逻辑就会多,代码就是非臃肿,循环多久是不确定的。没法精准的控制。二、使用Thread 类的join() 阻塞当前线程以等待子线程处理完毕。缺点粒度不够细三、通过Callable 接口实现。1、通过Futrue Task 2、 线程池主线程等待法:json() 阻塞:...

2019-05-07 13:34:56 982

原创 Java多线程与并发 --- Thread 与 Runnable 的关系

Thread 是一个类,源码中这个类实现了ThreadRunnable 是一个接口Thread : 例子Runnable : 例子

2019-05-07 12:46:38 162

原创 Java多线程与并发 --- start 与 run 方法的区别

2019-05-07 12:28:28 180

原创 Java多线程与并发 --- 进程与线程的区别

进程与线程的区别进程和线程的由来1、串行 --- 初期的计算机智能串行执行任务,并且需要长时间等待用户输入2、批处理 --- 预先将用户的指令写成清单,批量串出来用户的指令,仍然无法并发执行3、进程 --- 进程独占内存空间,保存各自运行状态,相互间不干扰且可以相互切换,为并发处理任务提供了可能。4、线程 --- 共享内存的进程资源,相互间切换更快速,支持更细粒度的任务控...

2019-05-07 12:17:29 194

原创 Java 底层知识 --- GC相关面试题

问:Object 的 finalize ()方法的是否与C++ 的析构函数作用相同答:与C++ 的析构函数不同,析构函数调用确定,而他不确定将未被引用的对象放置于F - Queue 队列方法执行随时可被终止给予对象最后一次重生的机会修改main问:答:...

2019-05-06 22:46:37 184

原创 Java 底层知识 --- 垃圾回收之老年代垃圾收集器

垃圾回收之老年代垃圾收集器

2019-05-06 22:28:51 163

原创 Java 底层知识 --- 垃圾回收之新生代垃圾收集器

垃圾回收之新生代垃圾收集器Stop - the - WorldJVM 因为要执行GC 而停止了应用程序的执行任何一种GC 算法中都发生大多数GC 优化,通过减少Stop - the - World 发生的时间来提高程序执行从而使系统拥有高吞吐,低停顿的特点SafePoint分析过程中对象引用关系不会发生变化的点产生Safepoint 的地方,方法调用;循环跳转;异...

2019-05-06 22:16:26 221

原创 Java 底层知识 --- 回收算法

谈谈你了解的垃圾回收算法一、标记清除算法(Mark and Sweep)1、标记 --- 从根集合进行扫描,对存活的对象进行标记2、清除 --- 对堆内存从头到尾进行线性遍历,回收不可达对象内存缺点:碎片化二、复制算法(Copying)1、分为对象面和空闲面2、对象在对象面上创建3、存活的对象被从对象面复制到空闲面4、将对象面所有对象内存清除三、标...

2019-05-06 22:00:39 216

原创 Java 底层知识 --- 垃圾回收之标记算法

java 垃圾回收机制首先,对象被判断为垃圾的标准是什么?1、没有被其他对象引用再者,判定对象是否是垃圾的算法是什么?1、引用计数算法2、可达性分析算法什么是引用计数算法 ?1、通过判断对象的引用数量来决定对象是否可以被回收2、每个对象实例都有一个引用计数器,被引用则+1,完成引用则-13、任何引用计数为0的对象实例可以被当作垃圾收集优点:执行效率高,程...

2019-05-05 19:23:32 171

原创 Java 底层知识 --- 内存模型之常见考题

内存模型之常见考题问题一:不同JDK 版本直接intern () 方法的区别 - JDK6 JDK VS JDK6+ ?选择Edit Configurations... ,并且选择需要运行的当前类执行此异常出现是在JDK 6JDK 6+ 就不会出现 ,字符串常量池,不受永久带限制JDK 7 可以正常执行JDK 8 可以正...

2019-05-05 19:02:19 133

原创 Java 底层知识 --- 内存模型之线程独占部分

java的内存模型地址空间的划分1、内核空间2、用户空间复现:以下切记不要执行!!!会导致系统卡死,可能会丢失文件等等严重情况,这里不负责!!!...

2019-05-05 12:43:29 173

原创 Java 底层知识 --- loaderClass 和 forName 的区别

首先,类的加载方式有哪些呢?一、隐式加载:new二、显示加载:loadClass 、 forName 等类的装载过程一、加载:通过ClassLoader 文件字节码,生成Class对象二、链接:1、校验:检查加载的class的准确性和安全性 2、准备:为类变量分配存储空间并设置类变量初始值 3、解析:JVM将常亮池的符号引用转换为直接引用三、初始化:执行类变量赋值和静态代码...

2019-05-05 11:43:08 176

原创 Java 底层知识 --- ClassLoader的双亲委派机制

什么是 ClassLoader 的双亲委派机制?不同的ClassLoader 加载类的和路径有所不同,为了实现分工,各自负责各自的区块,使得逻辑更加的明确,所以才有这么多相互共存的ClassLoader 。加载类的时候根据管理的区域各司其职,所以存在了这个机制,让他们相互协作,形成一个整体为什么要通过双亲委派来加载类?1、避免多份同样字节码的加载...

2019-05-05 11:02:00 209

原创 Java 底层知识 --- ClassLoader

什么是ClassLoader?

2019-05-05 00:10:00 111

原创 Java 底层知识 --- 反射

什么是反射?getDeclaredMethod () 获取大部分公有私有的方法,不能获取私有的方法,包括实现的接口的方法Method method = getDeclaredMethod ("方法名",String.class);method.setAccessible(true);其中rc.getMethod 是获取public的方法,也可以获取继承类的公用方...

2019-05-04 23:39:55 2015

原创 Java 底层知识 --- JVM

谈谈你对java的理解1、平台无关系2、GC3、语言特性4、面向对象5、类库6、异常处理问题一:Compile Once ,Run Anywhere 如何实现?编译时运行时javac 编译java文件java 运行class文件 跨平台的基础javap -c 反编译class文件问题二:JVM 如何加载.class 文件?java...

2019-05-04 23:21:51 165

原创 Linux --- 批量替换文件内容

批量替换文件内容如图,出现了多处出错。如何进行批量更改呢?sed语法:sed [option] 'sed command' filename全名:stream editor ,流编辑器适合对于文本的行内容进行处理例如:一、如图 想替换所有的Str 打头 替换成Stringsed 's/^Str/String/' replace.javas代表对字符串操作...

2019-05-03 12:57:53 305

原创 Linux --- 对日志内容做统计

对日志内容做统计awk 适合处理格式化的数据,针对表格化的数据语法 awk [options ] 'cmd' file一次读取一行文本,按输入分隔符进行切片,切成多个组成部分将切片直接保存在内建的变量中,$1 $2 $3 ......($0 表示行的全部)例如:awk '{print $1,$4}' netstat.txt如果想筛选部分条件满足的数据...

2019-05-03 12:33:56 741

原创 Linux --- 检索文件内容

检索文件内容grep语法:grep [options] pattern file全称:Globall Regular Expression Print作用:用于查找文件里符号条件的字符串例如:在当前目录home 下有两个文件src.logsrc.java使用命令 grep "moo" src* 的意思就是当前目录下查找以src打头的文件 并且去文件中查询包含...

2019-05-02 13:33:44 974

原创 Linux --- 查找指定文件

查找指定文件语法 find path [options] params在指定目录下查找文件find -name "查找的文件名称"find /-name "查找的文件名称"查找以什么打头的文件find / -name "文件名*"*代表通配符如何忽略大小写find / -iname "文件名*"如何查询指令的其他具体用法 ?例如想了解find 的其他...

2019-05-02 13:02:49 9322

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除