
Java
文章平均质量分 93
CrazyMo_
最美不过,心中有梦,身旁有你!
展开
-
Java进阶——数据结构与算法之栈与递归小结(三)
数据结构与算法之栈与递归小结原创 2024-10-19 20:30:00 · 839 阅读 · 0 评论 -
Java 进阶——并发编程必知必会之需要掌握的进程、线程、Java内存模型、synchronized、volatile等基本理论(一)
文章大纲引言一、Java 线程概述二、Runnable二、线程创建的原理概述四、线程的状态1、NEW2、RUNNABLE3、BLOCKED4、WAITING5、TIMED_WAITING6、TERMINATED五、调度的优先级六、JVM定义的**Java内存模型**(Java Memory Model, JMM)引言一、Java 线程概述进程是资源分配的最小单位,线程是程序执行的最小单位。线...原创 2020-06-27 11:43:26 · 382 阅读 · 0 评论 -
Java 进阶——深入JVM必知必会之类加载流程和类加载器小结
Java 源文件最终会被编译成为字节码文件(class),而运行前需要先通过类加载器(ClassLoader)把class文件加载到JVM内存原创 2020-02-21 22:45:33 · 740 阅读 · 0 评论 -
Java 进阶 ——代码插桩必知必会之Java字节指令码和Java文件概述
Java跨平台的本质就是中间产物.class,Java文件经过javac编译后生成字节码文件(.class),再由JVM通过对字节码指令的解释执行,从而屏蔽对操作系统的依赖原创 2020-01-20 14:03:36 · 2295 阅读 · 0 评论 -
Java 进阶——JDK 8带给你新的好吃的语法糖应用之Lambda表达式小结
文章大纲引言一、语法糖概述二、Lambda表达式概述1、Lambda基本语法2、Lambda表达形式引言初识Lambda[ˈlæmdə]是在13年左右,是在另一门微软的语言C#中的,当时就觉得Lambda很简洁,可奇怪的是类似Scala这种JVM语言早已经支持Lambda了,而Java语言直到JDK 8才引入Lambda的支持,所以很多人可能一开始接触的时候不太了解和不太习惯Lambda的写法...原创 2019-12-26 15:45:45 · 984 阅读 · 0 评论 -
Java 进阶——多线程优化之线程池 ThreadPoolExecutor的核心容器阻塞队列详解(一)
引言多线程我想无论是后端开发,还是对于App开发者来说都不会陌生,何况Android强制要求不能在主线程中做网络请求,于是乎,在很多初学者或者App的源码中会出现会多的new Thread…的方式,这样的代码是不优雅而且存在很多的隐患,假如说在用户退出App之后,如果线程内的工作还未执行完毕此时是无法被回收的,更不必说如果是无限循环的线程,那么可能永远无法回收,永远占着内存和CPU资源,这是多...原创 2018-09-21 10:24:43 · 982 阅读 · 0 评论 -
Java 进阶——多线程优化之线程池 ThreadPoolExecutor源码分析(二)
引言多线程我想无论是后端开发,还是对于App开发者来说都不会陌生,何况Android强制要求不能在主线程中做网络请求,于是乎,在很多初学者或者App的源码中会出现会多的new Thread…的方式,这样的代码是不优雅而且存在很多的隐患,假如说在用户退出App之后,如果线程内的工作还未执行完毕此时是无法被回收的,更不必说如果是无限循环的线程,那么可能永远无法回收,永远占着内存和CPU资源,这是多...原创 2018-10-22 14:24:11 · 542 阅读 · 0 评论 -
Java 进阶——多线程优化之线程池 ThreadPoolExecutor的使用(三)
引言前面花了很多时间把线程池的核心容器和主要核心流程源码大概的分析了一遍,如果有认真看了的话相信,一定对于线程池有了较深的理解,ThreadPoolExecutor是线程池框架的一个核心类,通过对ThreadPoolExecutor的分析,可以知道其对资源进行了复用,并非无限制的创建线程,可以有效的减少线程创建和切换的开销,使用起来也不在话下,这篇就简单应用下线程池。一、线程池的意义...原创 2018-11-01 14:44:11 · 3490 阅读 · 0 评论 -
Java进阶——数据结构与算法之线性表的顺序结构与冒泡和选择排序(一)
引言相信作为科班出生的同学都已经学习过了数据结构,可作为App开发者或者Web开发者,又有多少真正的灵活运用数据结构来解决自己的时机问题呢,数据结构或许在一些开发者的眼里是可有可无的东西,不用数据结构也能解决,其实并不然,很多时候追求高质量代码的过程,数据结构或许是一个有力的帮手,数据结构对于普通非算法工程师来说,其思想比实现更重要,仅个人拙见。一、数据结构与算法概述1、数据结构数据结构是...原创 2019-01-30 15:25:50 · 806 阅读 · 0 评论 -
Java进阶——计算机数据的进制特点与转换及位运算小结
文章大纲引言一、进制的种类1、二进制2、八进制3、十六进制二、进制的转换1、十进制整数转为二进制整数2、十进制小数转为二进制小数3、二进制转为十进制4、其他进制的转换5、负数的二进制表示三、进制的算术运算四、二进制的位运算1、常见的位运算符2、位运算的简单应用引言二进制数据或许对于很多程序员来说既陌生又熟悉,熟悉的是都知道计算机是以二进制存储所有数据的这么一个概念,陌生的是对于一些进制之间的转...原创 2019-06-21 10:26:07 · 770 阅读 · 0 评论 -
Java进阶——多线程之生产者-消费者模型小结
文章大纲引言一、Thread一些重要的操作和方法1、停止线程2、守护线程3、Join方法4、yield方法二、生产者-消费者模型概述三、使用wait-notify等待唤醒机制实现生产者-消费者模型四、使用Lock-Condition机制实现升级版生产者-消费者模型1、Lock概述2、Condition 概述引言上一篇文章Java进阶——多线程之线程间的通信、同步、等待唤醒机制小结末尾我们留两个...原创 2019-07-08 23:21:49 · 1061 阅读 · 0 评论 -
Java进阶——多线程之线程间的通信、同步、等待唤醒机制小结
文章大纲引言一、多线程之间的通讯与同步二、使用同步(synchonize)三、等待-唤醒机制引言在项目开发过程中,当多个线程同时操作一个共享资源时,如果不进行同步处理,运行以下代码public class ThreadInteract { final static Object OBJ=new Object(); public static void main(String[] args...原创 2019-07-03 21:22:25 · 484 阅读 · 0 评论 -
Java 进阶——正则表达式语法详解及灵活使用正则高效操作字符串
文章大纲一、正则表达式的基本语法1、字符类的特殊符号2、标示范围的特殊符号3、边界匹配器的特殊符号二、使用正则表达式匹配字符串三、使用正则表达式分割或替换字符串四、使用正则表达式获取字符串子串毫不夸张地说正则表达式设计之初,就是服务于字符串的,换言之,很多情况下使用正则表达式操作字符串都是最高效的。一、正则表达式的基本语法所谓正则表达式,就是用一些特定的符号来替代一些代码逻辑,把这些特殊符号...原创 2019-07-27 00:27:06 · 790 阅读 · 0 评论 -
Java进阶——开源框架的利器之注解、泛型、反射相关知识小结
引言注解Annotation和反射虽然本该是作为Java 的基本知识,但是现实中很多应用开发者却不甚了解,如果你有阅读目前主流的开源框架,你会发现几乎所有的框架的实现离不开注解、泛型和反射,greenDAO、Arouter、Glide、Retrofit、ButterKnife等等还有很多框架,所以如果你想要读懂框架甚至写出自己的框架这些都是最基本的知识。一、注解(Annotation)...原创 2018-09-03 00:31:24 · 540 阅读 · 0 评论 -
Java进阶——线程“独占”的线程局部量之ThreadLocal源码解析及设计思想
线程局部变量ThreadLocal是用于在多线程环境下创建线程局部变量的泛型类,ThreadLocal所提供的的变量与普通变量的区别在于,每个使用该变量的线程都会独立初始化一个的实例“副本"原创 2018-08-19 13:14:04 · 624 阅读 · 1 评论 -
Java进阶——学习Java 23种设计模式详解笔记之行为型模式(三)
行为型模式引言本章是关于设计模式的最后一讲,会讲到第三种设计模式——行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。转载 2015-09-10 16:44:18 · 768 阅读 · 0 评论 -
Java进阶——学习Java 23种设计模式详解笔记之结构型模式(二)
结构型设计模式上篇文章创建型设计模式学习完了5种创建型模式,这章开始,接下来将学习下7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。转载 2015-09-08 15:44:50 · 817 阅读 · 0 评论 -
Java 进阶——多线程应用小结(一)
引言我们今天所使用的操作系统是多任务操作系统。多线程就是是实现多任务的一种方式。一个程序可以看作为一个进程,进程是是一个正在执行中的程序,每一个进程执行都是有一个执行顺序,该顺序是一个执行路径或者叫一个控制单元。用于封装每一个程序的控制单元。比如在Windows系统中,一个运行的exe就是一个进程。而线程就是进程中的一个独立的控制单元,线程在控制着进程的执行。原创 2015-09-16 16:22:01 · 892 阅读 · 0 评论 -
Java 进阶——集合体系详解之Map体系键值对集合
体系Map<K,V>是无序的,底层数据结构基于哈希表,可以进行增加、删除、判断、访问等功能,不过Map体系并不继承于Collection,和Collection一样也是一个顶层接口,自成一派。Collection体系单列集合,那么Map体系则是一对一的映射关系(Key——Value双列集合),总是一对一对的存储,并且键必须是唯一的(即Key唯一)Map的访问方式也有两种keySet和entrySet原创 2015-09-20 21:36:24 · 7794 阅读 · 0 评论 -
Java进阶—— 集合体系详解之List体系有序集合
引言面向对象语言对事物的体现必然是以对象的形式,Java工程师为了方便多多个对象的操作,就对对象进行存储,集合就是存储对象的一种方式,他们的底层都是基于不同的数据结构。当然集合和数组一样都是容器,数组也是可以存储对象的,但是数组长度一经初始化长度就是固定的,而集合长度是可变的,数组只能用于存储相同类型的对象,而集合可以存储不同类型的对象,数据多了用对象封装,对象多了用集合存。原创 2015-09-23 14:13:39 · 12529 阅读 · 1 评论 -
Java进阶—— 集合体系详解之Set体系无序不重复集合
前一篇博文Java 集合体系详解——List体系有序集合总结了下List体系集合的用法,这一篇主要总结Set体系集合的相关知识点,Set集合体系存储特点是元素是无序的(存入和取出的顺序不一定一致的),元素不可以重复。和List集合一样拥有Collection接口的所有方法,当然也同样可以使用iterator()获得迭代器来进行遍历。Set集合体系之HashSet和TreeSet集合。原创 2015-09-23 14:22:05 · 11714 阅读 · 3 评论 -
Java进阶—— 泛型总结与应用
在1.5 前,当你把数据存入到集合的时候,需要主观去判断类型是否合法,假如你知道你定义的是String类型,而保存的时候你存了一个Integer类型的数据,编译没问题,但是运行的时候就可能导致类型转换异常**ClassCastException**,这是不安全的,而在1.5之后,引入了**泛型**并且使用了**泛型**之后,这个隐患在编译时期就被暴露出来,泛型理解为是java的一种安全机制,同时也带来了的另一种多态原创 2015-09-24 11:56:10 · 2788 阅读 · 4 评论 -
Java进阶——回调机制详解及实例
Java中的回调(callback)是很重要的一个机制。项目模块之间总是存在着一定的接口,从调用方式上看可分为三类:同步调用、回调和异步调用。其中同步调用是一种阻塞式调用,我们在开发中经常使用的;回调是一种双向的调用模式(即 被调用方的接口在被调用时也会调用对方的接口)原创 2016-08-02 22:51:35 · 1587 阅读 · 0 评论 -
Java进阶——使用正则表达式检索、替换String中的特定字符和关于正则表达式的一切
正则表达式的基本语法及使用正则表达式完成字符串的检索、替换、查找。原创 2017-04-01 15:00:13 · 58304 阅读 · 1 评论 -
Java进阶——详解反射机制及应用中的泛型类型的获取和曾经踩过的一个坑
Java反射机制(Java Reflection)是指程序在运行过程中,可以获知某个已知类或已知对象的的相关信息(包括类的方法、属性、父类等信息,还包含创建实例、判断实例类型等操作)这种动态获取信息以及动态调用对象方法的功能就是Java语言的反射机制原创 2017-05-13 12:23:20 · 1132 阅读 · 0 评论 -
Java进阶——关于多线程需要了解的一些常识和操作整理(一)
引言多线程在现代化的今天,相信很多人都不会陌生吧,利用多线程获取更多的CPU资源,如果总有些子任务是可以并发的,多个子任务并发执行了很可能避免CPU需要IO操作的完成,而且能够提高系统的吞吐量等等,无论是Web或者是移动开发,多线程都直接影响着程序执行效率和用户体验,于是乎打算整理下关于多线程的一些知识,本文内容可能来自某些书本(部分内容整理摘自《操作系统》和《Java核心技术》),甚至是自己...原创 2018-03-09 10:22:38 · 473 阅读 · 0 评论 -
设计模式——结构型之用桥梁模式(Bridge Pattern)将“抽象”与“实现”解耦(五)
引言相信对于现实生活中这样的情况都不陌生,比如说开关与它具体控制的电器,开关的类型多种多样,而电器也是千变万化,两者之间相对独立变化却又耦合在一起,再比如说奶茶店的奶茶,有不同规格大小、不同口味、不同味道浓度、不同温度的类别等等,假如使用程序语言来描述的话,使用普通的继承结构一定相当臃肿而且高度耦合,基于此桥梁模式应运而生。一、桥梁模式概述桥梁模式(Bridge Pattern)是一种...原创 2018-08-08 16:11:56 · 866 阅读 · 0 评论 -
Java 进阶——并发编程之线程同步利器CountDownLatch、CyclicBarrier、Semaphore 的使用小结
引言Java 语言之所以广泛运用于服务端程序,很大一部分原因就是因为在JDK中Java 已经为我们提供了很多并发场景的解决方案,借助这些系统方案我们可以快速应用于具体场景,甚至是在系统方案上进行扩展,这篇文章就好好总结下三种线程控制工具类。一、CountDownLatch1、CountDownLatch概述CountDownLatch 是一种允许一个或多个线程阻塞等待,直到在其...原创 2018-08-18 11:41:57 · 568 阅读 · 0 评论 -
Java进阶——学习Java 23种设计模式详解笔记之创建型模式(一)
一、设计模式的分类总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。转载 2015-09-10 10:07:21 · 1190 阅读 · 0 评论