JAVA
文章平均质量分 84
小柯基_littlecorgi
github:https://github.com/littlecorgi-twk
blog:https://www.littlecorgi.top/
展开
-
Java锁机制
悲观锁和乐观锁乐观锁和悲观锁都是一种广义上的概念。对于同一个数据的并发操作,悲观锁确实很悲观,它时时刻刻都非常担心自己在读取或者写入数据的时候有其他线程来修改数据,所以为了安心,他一般就直接从读取数据的时候就加锁,确保自己操作的时候不会被其它线程打扰。最典型的悲观锁就是synchronized和Lock。而乐观锁确实很乐观,它认为自己在操作数据的时候是不会有其他线程来修改数据的,所以丝毫不担...原创 2019-11-28 22:34:51 · 436 阅读 · 0 评论 -
深入理解JVM-类加载器
1. 概念虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流(即字节码)”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成字节码(.class 文件)。...原创 2019-11-24 21:58:01 · 130 阅读 · 0 评论 -
深入理解JVM-虚拟机类加载机制
1. 概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。Java类型的加载、连接和初始化过程都是在程序运行期间完成的,为Java应用程序提供高度的灵活性2. 类加载的时机类从被加载到虚拟机内存中开始,到卸载处内存为止它的整个生命周期包括:加载(Loading)验证 (Veri...原创 2019-11-24 15:44:28 · 143 阅读 · 0 评论 -
Java集合源码之HashMap
1. 简介HashMap是一个哈希表,线程不安全,key唯一,value可重复,允许key和value为null。遍历时是无序的。底层结构是基于链表散列,也就是数组+链表。数组也被称为哈希桶,桶里面就装着链表,链表中的每个节点,就是哈希表中的每个元素。在JDK8中,当链表长度达到8的时候,就会转为红黑树。它实现了Map<K, V>, Cloneable, Serializabl...原创 2019-11-22 20:10:31 · 157 阅读 · 0 评论 -
Java集合源码之ArrayList
1. 简介ArrayList可以说是我们最常用的一种集合了。他的本质是一个数组,一个可以自动扩容的动态数组,线程不安全,允许元素为null。由于数组的内存连续,可以根据下标以O(1)的时间读写元素,因此时间效率很高。2. 内部属性我们先来看下ArrayList里面有哪几个属性:private static final long serialVersionUID = 86834525...原创 2019-11-18 22:10:52 · 160 阅读 · 0 评论 -
Android多线程2--Java中的线程池
线程池简介我们在写项目经常要用到多线程。但是线程的创建和摧毁都是较消耗资源和性能的,如果你每需要一个任务就新建一个线程,那可能会在线程的创建和摧毁上浪费掉很多资源。那如果我们让线程执行任务后不摧毁,接着执行下一个任务,这样是不是就能避免这种情况了。Java1.5中提供了Executor框架用于把任务的提交和执行解耦,任务的执行就交给Runnable或者Callable,而Executor框架用...原创 2019-06-16 15:46:16 · 142 阅读 · 0 评论 -
Android多线程1--Java中的阻塞队列
阻塞队列前言在谈论阻塞队列之前我们先看下操作系统多线程部分一个经典的例子——生产者和消费者问题:现在有两个进程,一个是生产者一个是消费者,还有一个线程缓冲区。生产者主要作用就是向缓冲区中添加数据,消费者就是从缓冲区中取出数据。这个问题的核心就是如何确保生产者不会在缓冲区满了的时候还往其中添加元素,消费者不会在缓冲区空了的时候还要求取出数据。关于这个问题的解决办法我们以后再说,我们现在主...原创 2019-06-09 13:37:55 · 372 阅读 · 0 评论 -
Java IO流学习总结
1. 输入与输出流输入流 可以从其中读入一个字节序列的对象输出流 可以从其中写入一个字节序列的对象1.1 读写字节InputStream类有一个抽象方法,用于读入一个直接,并返回读入的直接,当遇到结尾时返回-1abstract int read()类似的,OutputStream类定义了一个方法,用于向某个输出位置写出一个字节abstract ...原创 2018-08-10 16:18:57 · 2525 阅读 · 0 评论 -
【Java学习笔记】集合
很多方法你都能在jdk api中找到,为了方便,建议下载一个jdk api方便查询 下载地址:http://blog.fondme.cn/posts/21004/1. 集合的概述1. 为什么要引入集合学习集合之前,我们都知道,在Java中想要存储一组数据,可以使用数组,但是,数组的长度是固定的,很多时候,我们写的项目具体数目是不定的。比方说你写了个学生管理系统,你...原创 2018-07-28 10:38:14 · 218 阅读 · 0 评论 -
Android入门之计算器
1. 前言这是我的第一个安卓app,从界面到算法都是自己写的,期间经历了各种各样的bug,也学到的各种各样的知识,加深了对Java的使用,也了解了如何写一个Android应用。因为我Java也才入门,安卓更不用说(第一行代码第三章都没看完),所以代码写的肯定非常粗糙,望大家谅解。后期我会对其进行改进,也会上传到此博客2. 准备1. 编译器:Android Studio虽说And...原创 2018-08-03 21:53:17 · 1562 阅读 · 0 评论 -
[个人笔记] Java的修饰符
privateprivate是用于封装。他能保证变量只能被该类访问,而不被外部的类访问。保证的数据的稳定被private修饰的变量,他只能在初始化的时候或者在该类的方法里面进行赋值操作,在其他地方赋值是不被允许的父类中的private子类也不可继承public class test{ private int a = 1;//允许 private int b = ...原创 2018-07-24 11:02:56 · 161 阅读 · 0 评论 -
JAVA基本语法[新手向]
JAVA基本语法[新手向]JAVA基本语法[新手向]0.JAVA安装配置1. 数据类型1.1 整型1.2 浮点型1.3 char型1.4 boolean类型2. 变量2.1 变量初始化2.2 常量3. 运算符3.1数值之间的类型转换3.2强制类型转化3.3结合赋值和运算符3.4自增与自减3.5 三目运算符3.6括号与运算符优先级4. 字符串4...原创 2018-06-16 17:37:19 · 271 阅读 · 0 评论 -
JAVA安装与配置[新手向]
JAVA安装与配置JAVA安装与配置0.JAVA的介绍1. 下载JAVA2. 环境变量配置3. 检测是否安装配置成功0.JAVA的介绍Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,...原创 2018-06-16 14:09:00 · 3110 阅读 · 0 评论