java
iwenchaos
这个作者很懒,什么都没留下…
展开
-
android中线程类之Runnable-Thread-Callable
在java中想要创建一个线程可运行实例,通常有以下几种方式实现Runnable继承Thread实现Callable接下来主要针对这几种方式的使用,实现原理和细节,以及区别进行探讨。Thread使用继承Thread类,需要覆盖方法 run()方法,在创建Thread类的子类时需要重写 run(),加入线程所要执行的代即可。直接继承Thread类有一个很大的缺点,因为“java类的继...原创 2020-02-11 15:21:35 · 546 阅读 · 0 评论 -
java知识系列之并发基础
谈及到java中并发相关知识的时候,总是围绕多线程展开的。那么先看一下进程与线程的东西进程与线程进程与线程进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)线程和进程一样分为...原创 2019-12-26 16:51:55 · 95 阅读 · 0 评论 -
java知识系列之并发集合
JDK1.5中为我们提供了一系列的并发容器,集中在java.util.concurrent包下,先从同步容器说起。同步容器Vector和HashTable这两个是非常古老的集合了,可以追溯到JDK1.0。为了简化代码开发的过程,早期的JDK在java.util包中提供了Vector和HashTable两个同步容器,这两个容器的实现和早期的ArrayList和HashMap代码实现基本一样,...原创 2019-12-26 15:58:34 · 125 阅读 · 1 评论 -
java知识系列之线程池篇
本文主要讲解java中线程池的。前言Executor框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框架,目的是提供一种将”任务提交”与”任务运行”分离开来的机制。继承体系Executorvoid execute(Runnable command)。ExecutorService 接口在其父类接口基础上,void shutdown(); 启动有序关闭,在该关闭...原创 2019-12-26 11:37:44 · 104 阅读 · 0 评论 -
java知识系列之集合理论篇
本文主要综合介绍java集合中比较重要的一些概念和实现。如下图基础部分CollectionList:接口实例存储的是有序的,可以重复的元素。ArrayList- 底层使用数组- 读取速度快,增删速度慢- 不是线程安全的,只能在单线程环境下,多线程环境下可以考虑用collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也...原创 2019-12-25 16:12:23 · 131 阅读 · 0 评论 -
java知识系列之写代码前的思考
单一职责原则:一个类只做它该做的事情。(单一职责原则想表达的就是"高内聚",写代码最终极的原则只有六个字"高内聚、低耦合",所谓的高内聚就是一个代码模块只完成一项功能,在面向对象中,如果只让一个类完成它该做的事,而不涉及与它无关的领域就是践行了高内聚的原则,这个类就只有单一职责。我们都知道一句话叫"因为专注,所以专业")开闭原则:软件实体应当对扩展开放,对修改关闭。(在理想的状态下,当我们需...原创 2019-12-24 14:03:16 · 156 阅读 · 0 评论 -
java知识系列之内存模型
概述Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。前言我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和...原创 2019-12-23 17:21:12 · 92 阅读 · 0 评论 -
java知识系列之内存结构与内存模型的辨析
首先说什么是内存结构?为什么会有内存结构?内存结构是什么样的?java内存结构虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。方便程序管理与开发PC寄存器: cpu中,线程私有java虚拟机栈:线程私有本地方法栈:线程私有java堆: 线程共享方法区:线程共享运行时常量池- 用于存放编译期生成的各种字面量和符号引用。但是,...原创 2019-12-23 17:17:42 · 106 阅读 · 0 评论 -
java知识系列之类加载
类加载的过程类加载的过程: 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括加载,验证,准备,解析,初始化,使用,卸载。其中类加载:加载通过一个类的全限定名类获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在java堆中生成一个代表这个类的Class对象,作为方法区这些数据的访问入口链接验证验证是链接阶段的第...原创 2019-12-23 17:02:12 · 65 阅读 · 0 评论 -
java知识系列的虚拟机
java虚拟机JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。关于并发编程在并发编程领域,有两个关键问题:线程之间的通信和同步。线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状...原创 2019-12-23 15:51:53 · 193 阅读 · 0 评论 -
Java知识系列之基础内容
java三大特性抽象抽象类与接口的区别封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。多态:多态性是指允许不同子类型的对象对同一消息作出不同的响应。静态多态:重载,编译期动态多态:重写,运行时重写要求:父子类方法名,与方法参数一致(参数个数,类型,顺序)返回的数据类型必须是父类相同或者是其子类访问修饰符必的限制必须要大于父...原创 2019-12-23 15:45:19 · 262 阅读 · 0 评论