Java
文章平均质量分 84
androidsj
这个作者很懒,什么都没留下…
展开
-
Spannable的使用
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE //前后都不包括Spannable.SPAN_INCLUSIVE_EXCLUSIVE //前包括后不包括Spannable.SPAN_EXCLUSIVE_INCLUSIVE //前不包括后包括Spannable.SPAN_INCLUSIVE_INCLUSIVE //前后都包括实际上如下操作,以上四种没有区别...原创 2018-08-02 14:58:10 · 3029 阅读 · 0 评论 -
Java中重载和重写的区别
重载 overloading1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现。2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型来决定具体使用哪个方...原创 2018-06-14 09:19:19 · 739 阅读 · 0 评论 -
JUC线程框架深度解析 — 06、DelayQueue延迟队列
所谓的延迟队列最大的特征是它可以自动通过队列进行脱离,例如:现在有一些对象被临时保存着,但是有可能该集合对象是一个公共对象,那么里面的某些数据如果不再使用的时候就希望其可以在指定的时间到达后自动的消失。 DelayQueue是延迟队列主要的使用类,所谓的延迟队列=BlockingQueue + PriorityQueue + Delayed。【 延迟队列的基本使用 】 下面编写...原创 2018-05-16 13:51:28 · 1564 阅读 · 0 评论 -
JUC线程框架深度解析 — 05、阻塞队列
Queue是一个队列,特征是FIFO,如果要实现生产者与消费者模式,可以采用队列来进行中间的缓冲处理,好处:生产者可以一直不停歇的生产数据。 BlockingQueue是Queue子接口。所以它实现有队列的基本特征:Public interface BlockingQueue<E> extends Queue<E> 在最初利用Queue实现生产者与消费...原创 2018-05-16 13:40:05 · 933 阅读 · 0 评论 -
JUC线程框架深度解析 — 04、并发集合支持类
如果要进行多个数据对象保存,一定首选类集(List、Set、Queue、Map),许多的集合的子类都具有同步与异步的差别,但是如果真的要在多线程之中去使用这些类,是否真的可以用呢?范例:观察一下类集的问题import java.util.ArrayList; import java.util.List;public class MLDNTestDemo { public stat...原创 2018-05-16 11:35:59 · 2212 阅读 · 0 评论 -
反射 - Class.forName()和ClassLoader.loadClass()的区别
装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字节码验证,符号引用验证) 准备:给类的静态变量分配并初始化存储空间; 解析:将常量池中的符号引用转成直接引用; 初始化:激活...原创 2018-05-15 18:38:35 · 753 阅读 · 0 评论 -
JUC线程框架深度解析 — 03、线程同步辅助工具类
【 信号量:Semaphore 】➣ Semaphore通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。➣ 例如,大家排队去银行办理业务,但是只有两个银行窗口提供服务,来了10个人需要排队,所以这10个排队的人员就需 要依次使 用这两个业务窗口。 首先来观察java.util.concurrent.Semaphore类的基本定义形式: public cl...原创 2018-05-08 16:11:15 · 1204 阅读 · 0 评论 -
JUC线程框架深度解析 — 02、线程同步锁
juc的开发架构解决的核心问题是并发访问与数据安全操作问题,当进行并发访问的时候如果对于锁的控制不当,就会造成死锁这样的阻塞问题,那么为了解决这样的缺陷,juc里面重新针对锁的概念进行了设计。【 JUC锁机制 】➣ JUC锁机制包括有如下组成部分: ➣ 核心接口:Lock、ReadWriteLock; ➣ AQS抽象类:• AbstractOwnableSynchronizer(...原创 2018-05-08 15:13:08 · 2380 阅读 · 2 评论 -
JVM 垃圾回收原理 - 1、JVM执行分析
一、Java内存模型 所有的Java程序代码必须保存在*.java的文件之中,这些称为源代码,而这些源代码并不能够直接执行,必须使用javac.exe命令将其编译为.class文件,而后利用java.exe命令在JVM进程之中解释此程序。【 Java程序执行流程 】 实际上当JVM将所需要的*.class文件加载到JVM进程之中,那么这个过程就需要有一个类加载器(ClassLoade...原创 2018-05-17 15:33:18 · 246 阅读 · 0 评论 -
JUC线程框架深度解析 — 08、ForkJoinTask架构
【 ForkJoinTask分支任务 】 分之合并的设计思想主要是来自于CPU运行环境,ForkJoinTask是在JDK1.7之后追加到java之中的一个类库,其主要的功能是进行资源窃取功能的实现。❥ 但需要注意的是,在分支合并任务的处理结构中一定要注意以下的几点: • 分支任务之中的数据的同步处理一定要有分支任务自己来完成,不要求进行额外的控制; • 在进行分支处理操作的时...原创 2018-05-17 13:28:15 · 1012 阅读 · 1 评论 -
JUC线程框架深度解析 — 07、线程池
一堆线程一起完成一件事情就是线程池。 【 线程池的核心组成 】【 线程池分类 】➢ java.util.concurrent.Executors类可以创建线程池➣ 创建无大小限制的线程池 : public static ExecutorService newCacheThreadPool();➢ 创建固定大小的线程池 : public static ExecutorService newFixe...原创 2018-05-17 11:06:48 · 1150 阅读 · 1 评论 -
JUC线程框架深度解析 — 01、JUC基础使用
一、JUC开发包简介【 java.util.concurrent开发包 】➣ 传统线程编程模型之中为防止死锁等现象的出现(wait()、notify()、 synchronized)时往往会考虑性能、公平性、资源管理等问题,这样加重了程序开发人员的负担;➣ Java5.0添加了一个新的java.util.concurrent开发包(简称JUC)。 利用此包进行的多线程编程将有效的减少竞争条...原创 2018-05-02 17:16:54 · 13161 阅读 · 4 评论 -
java中的深复制和浅复制
Java 语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单 的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它 们的区别、优点及缺点。 看到这个标题,是不是有点困惑:Java语 言明确说明取消了指针...转载 2018-04-04 14:13:33 · 109 阅读 · 0 评论 -
java复制文件的4种方式
1. 使用FileStreams复制这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。 这是第一个方法的代码:private static void copyFileUsingFileStreams(File source, File dest) throws IOExcept...原创 2018-04-04 14:11:23 · 223 阅读 · 0 评论 -
Java 中 break和 continue 的使用方法及区别
breakbreak可用于循环和switch...case...语句中。用于switch...case中:执行完满足case条件的内容内后结束switch,不执行下面的语句。eg:public static void breakSwitch1() { int n = 1; switch (n) { case 1:...原创 2018-08-23 13:41:15 · 175 阅读 · 0 评论