Java
文章平均质量分 95
拭心
我的新书《Android 性能优化入门与实战》上架了,快速提升技术实力,强烈推荐!!!
展开
-
Java 基础巩固:内部类的字节码学习和实战使用场景
文章出自:安卓进阶学习指南 主要贡献者: Cloud9527 Alex_赵 Struggle shixinzhang 读完本文你将了解: 背景介绍四种内部类介绍成员内部类静态内部类局部内部类匿名内部类内部类的使用场景成员内部类的使用场景静态内部类的使用场景匿名内部类的使用场景局部内部类内存泄漏总结...原创 2017-11-30 22:59:17 · 10868 阅读 · 2 评论 -
Java 集合深入理解(8):AbstractSequentialList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~AbstractSequentialList 没有什么特别的,这里介绍是为了理解 LinkedList 更容易。什么是 AbstractSequentialList( Sequential 相继的,按次序的)AbstractSequentialList 继承自 AbstractList,是 LinkedList 的父类,是原创 2016-10-19 00:31:22 · 5936 阅读 · 2 评论 -
Java 集合深入理解(10):Deque 双端队列
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~什么是 DequeDeque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋壳。Deque 继承自 Queue,直接实现了它的有 LinkedList, ArayDeque, ConcurrentLinkedDeque 等。Deque 支持容量受限的双端队列,也支持大小不固定的。一原创 2016-10-19 23:54:13 · 22475 阅读 · 1 评论 -
【Java多线程】的学习总结
基本的概念:多线程其实就是进程中一个独立的控制单元或者说是执行路径,线程控制着进程的执行,【重点】一个进程中,至少有一个线程存在。目录:【1】【线程的创建】怎样继承Thread类,创建多个线程?这个和实现Runnable接口创建的方式有什么区别?【2】创建线程为什么要覆写run方法和为什么在main方法中执行线程程序,每一次运行的效果都不一样?【转载 2015-06-24 12:27:36 · 1963 阅读 · 1 评论 -
Java 集合深入理解(15):AbstractMap
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天终于不下雨了,讨厌雨天。今天来了解下 AbstractMap。什么是 AbstractMapAbstractMap 是 Map 接口的的实现类之一,也是 HashMap, TreeMap, ConcurrentHashMap 等类的父类。AbstractMap 提供了 Map 的基本实现,使得我们以后要实现一个原创 2016-10-27 19:50:43 · 12069 阅读 · 3 评论 -
Java 集合深入理解(14):Map 概述
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 终于把 List 常用的几种容器介绍完了,接下来开始 Map 的相关介绍。什么是 MapJava 中的 Map 接口 是和 Collection 接口 同一等级的集合根接口,它 表示一个键值对 (key-value) 的映射。类似数学中 函数 的概念。数学中的函数:一个 Map 中,任意一个 key 都有唯一确定的原创 2016-10-26 00:20:59 · 10151 阅读 · 3 评论 -
Java 集合深入理解(13):Stack 栈
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情不错,再来一篇 Stack ! 数据结构中的 栈数据结构中,栈是一种线性数据结构,遵从 LIFO(后进先出)的操作顺序,所有操作都是在顶部进行有点像羽毛球筒:栈通常有三种操作:push 入栈pop 栈顶元素出栈,并返回peek 获取栈顶元素,并不删除我们自定义一个 栈 时只要实现上述三个主要操作原创 2016-10-23 13:25:32 · 6057 阅读 · 0 评论 -
Java 集合深入理解(12):古老的 Vector
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天刮台风,躲屋里看看 Vector ! 都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这么相似。什么是 VectorVector 和 ArrayList 一样,都是继承自 AbstractList。它是 Stack 的父类。英文的意思是 “矢量”。Ve原创 2016-10-23 12:03:05 · 9304 阅读 · 1 评论 -
全国所有省份、城市的JSON
昨天需要用到全国所有省份、城市的JSON,结果网上找了好久没有合适的,还是自己搞一份吧。有需要的同学去 点击打开链接下载例子: { "Citys": [ { "Id": "ae5ef87a-dd23-4139-bee2-6472ea8acf22", "Name": "澳门特别行政区", "P原创 2016-05-04 10:42:03 · 28760 阅读 · 4 评论 -
Java判断输入的String是否为中文方法总结
今天遇到的问题是如何判断输入的字符串是汉字,现将学习到的方法转载、记录总结如下:Java用的是Unicode 编码char 型变量的范围是0-65535 无符号的值,可以表示 65536个字符,基本上地球上的字符可被全部包括了,实际中,我们希望判断一个字符是不是汉字,或者一个字符串里的字符是否有汉字来满足业务上的需求,String类中有个这样的方法可得到其字符长度length() ,看下面例子原创 2015-11-18 15:37:51 · 24553 阅读 · 4 评论 -
深入理解Java:注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno转载 2015-11-13 16:13:51 · 976 阅读 · 0 评论 -
Java 集合深入理解(7):ArrayList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~什么是 ArrayList ArrayList 是 Java 集合框架中 List接口 的一个实现类。可以说 ArrayList 是我们使用最多的 List 集合,它有以下特点:容量不固定,想放多少放多少(当然有最大阈值,但一般达不到)有序的(元素输出顺序与输入顺序一致)元素可以为 null效率高 size(),原创 2016-10-18 22:42:53 · 14033 阅读 · 9 评论 -
Java 集合深入理解(6):AbstractList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~什么是 AbstractListAbstractList 继承自 AbstractCollection 抽象类,实现了 List 接口 ,是 ArrayList 和 AbstractSequentiaList 的父类。它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方原创 2016-10-16 23:07:45 · 14205 阅读 · 12 评论 -
Java 集合深入理解(11):LinkedList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情鱼肚白,来学学 LinkedList 吧!日常开发中,保存一组数据使用的最多的就是 ArrayList, 其次就是 LinkedList 了。我们知道 ArrayList 是以数组实现的,遍历时很快,但是插入、删除时都需要移动后面的元素,效率略差些。而LinkedList 是以链表实现的,插入、删除时只需要改原创 2016-10-20 20:15:34 · 31984 阅读 · 8 评论 -
Java 常用工具类 Collections 源码分析
文章出处 文章出自:安卓进阶学习指南 作者:shixinzhang 完稿日期:2017.10.25Collections 和 Arrays 是 JDK 为我们提供的常用工具类,方便我们操作集合和数组。这次之所以总结这个,是因为在一次面试中被问到一个细节,回答地不太好,这里补一下吧。由于两个都是工具类,我们就放在一起学习。读完本文你将了解:文章出处Collections提原创 2017-10-26 02:19:38 · 28437 阅读 · 46 评论 -
Java 基础巩固:再谈抽象类和接口
文章出自:安卓进阶学习指南 主要贡献者: Milo Struggle shixinzhang 读完本文你将了解:背景介绍什么是抽象类和接口特点与区别抽象类的特点接口的特点栗子小结如何选择抽象与多态面向接口编程多态继承和组合总结Thanks背景介绍大家好,这篇文章是 《安卓进阶技能树计划》 的第一部分 《Java 基础系列》 的第一篇原创 2017-11-02 00:01:02 · 14030 阅读 · 14 评论 -
并发编程1:全面认识 Thread
读完本文你将了解到:线程简介线程创建的三种方式实现 Runnable 接口继承 Thread重写其 run 方法实现 Callable 接口重写 call 方法用 FutureTask 获得结果线程的基本属性优先级守护线程线程的生命周期线程的关键方法ThreadsleepObjectwaitThreadyieldThreadjoin线程的中断public void i原创 2017-02-26 00:29:12 · 11137 阅读 · 15 评论 -
并发编程2:认识并发编程的利与弊
读完本文你将了解:多线程的优点1提高资源利用率2响应更快多线程的缺点1增加资源消耗2上下文切换的开销3设计编码测试的复杂度增加Java 内存模型与 CPU 内存简介Java 中的堆Java 中的栈计算机中的内存寄存器缓存多线程可能出现的问题竞态条件与临界区内存可见性总结Thanks从上篇文章 趣谈并发(1):全面认识 Thread 我们了解了 Java 中线程的基本概原创 2017-03-01 00:31:26 · 10443 阅读 · 13 评论 -
@SuppressWarning 使用及支持的参数
@SuppressWarning@SuppressWarning 是一个注解,它的作用时抑制编译时的警告,可以用于标记整个类、某个方法、某个属性或者某个参数,用于告诉编译器这个代码是安全的,不必警告。强烈建议最小范围使用这个注解,一旦你在一个比较大的范围抑制错误,可能会把真正的问题掩盖了。@SuppressWarning 支持的参数all : 抑制所有警告boxing : 抑制装箱、拆箱相关的警原创 2017-05-19 11:22:45 · 3639 阅读 · 0 评论 -
Java 进阶巩固:什么是注解以及运行时注解的使用
这篇文章 2016年12月13日星期二 就写完了,当时想着等写完另外一篇关于自定义注解的一起发。结果没想到这一等就是半年多 - -。有时候的确是这样啊,总想着等条件更好了再干,等准备完全了再开始,结果好多想法、好多事情都不了了之。读完本文你将了解:什么是注解Java 内置的注解个用于通知编译器信息的注解个用于修饰注解的注解自定义一个注解注解的作用注解的用法运行时注解总结Thank原创 2017-07-05 19:22:59 · 9709 阅读 · 5 评论 -
使用编译时注解简单实现类似 ButterKnife 的效果
这篇文章是学习鸿洋前辈的 Android 如何编写基于编译时注解的项目 的笔记,用于记录我的学习收获。读完本文你讲了解:什么是编译时注解APT编译时注解如何使用与编写举个例子思路创建注解创建运行时绑定的类创建注解处理器完成编写使用一下遇到的坑代码地址总结Thanks什么是编译时注解上篇文章 什么是注解以及运行时注解的使用 中我们介绍了注解的几种使用场景,这里回顾一下:编译原创 2017-07-05 19:37:42 · 6825 阅读 · 2 评论 -
深入理解 Java 反射:Method (成员方法)
读完本文你将了解到:Method 介绍获取方法的信息获取方法的参数名称获取方法的修饰符synthetic method合成方法varargs variable arguments methodJava 可变参数方法bridge method桥接方法反射调用方法调用含有可变参数的方法常见错误 1 泛型擦除导致的 NoSuchMethodException常见错误 2 访问不可见原创 2017-01-18 20:03:08 · 28018 阅读 · 5 评论 -
深入理解 Java 反射:Field (成员变量)
读完本文你将了解到:Field 成员变量的介绍获取变量的类型获取成员变量的修饰符获取和修改成员变量的值常见错误 1 无法转换类型导致的 javalangIllegalArgumentException常见错误 2反射非 public 的变量导致的 NoSuchFieldException常见错误 3 修改 final类型的变量导致的 IllegalAccessException总结原创 2017-01-18 20:00:57 · 52890 阅读 · 7 评论 -
深入理解 Java 反射:Class (反射的入口)
什么是 Reflection 反射,为什么要用它Java 强类型语言,但是我们在运行时有了解、修改信息的需求,包括类信息、成员信息以及数组信息。Java 中 Reflection 和 Introspection 区别?说起反射,还有一个相似的概念 ‘Introspection’,字面意思是“自省、内省”,它们之间的区别如下:内省 在运行时检查一个对象的类型或者属性最常见的例子就是运行时通过 a原创 2017-01-18 19:58:14 · 19170 阅读 · 8 评论 -
深入理解 Java 泛型
首先提个问题: Java 泛型的作用是什么?泛型擦除是什么?泛型一般用在什么场景? 如果这个问题你答不上来,那这篇文章可能就对你有些价值。读完本文你将了解到:什么是泛型为什么引入泛型泛型的使用方式泛型类泛型接口泛型方法泛型的通配符无限制通配符 上界通配符 extends E下界通配符 super E通配符比较泛型的类型擦除擦除的实现原理擦除导致原创 2016-12-09 22:14:49 · 19709 阅读 · 12 评论 -
Java 集合深入理解(9):Queue 队列
什么是队列队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。队列有两种:单队列循环队列单队列就是常见的队列, 每次添加元素时,都是添加到队尾:以数组实现的队列为例,初始时队列长度固定为 4,font 和 rear 均为 0:每添加一个元素,rear 后移一位。当添加四个元素后, rear 到了索引为 4 的位置:这时 a原创 2016-10-19 16:45:19 · 68407 阅读 · 22 评论 -
Java 解惑:Comparable 和 Comparator 的区别
读完本文你将了解到:Comparable 自然排序Comparator 定制排序总结Java 中为我们提供了两种比较机制:Comparable 和 Comparator,他们之间有什么区别呢?今天来了解一下。Comparable 自然排序Comparable 在 java.lang 包下,是一个接口,内部只有一个方法 compareTo():public interface Comparab原创 2016-11-29 20:11:40 · 28282 阅读 · 12 评论 -
Java 解惑:Random 种子的作用、含参与不含参构造函数区别
Random 通常用来作为随机数生成器,它有两个构造方法: Random random = new Random(); Random random2 = new Random(50);1.不含参构造方法:public Random() { setSeed(System.nanoTime() + seedBase); ++seedBase;}2.含参原创 2016-10-30 10:58:51 · 17740 阅读 · 3 评论 -
Java基础查漏补缺:(开篇)为什么要在即将找工作的时候还在看Java基础
由于之前的贪玩和迷茫,我是在大二下才开始学习Android。学Android前Java基础基本为0,只有C语言的基础。后来找到了Mars老师的Java4Android视频,开始激情很高,天天看,结果看完以后没有第一时间进入Android的学习,而是去和女朋友张罗淘宝店- -。等开始学Android时,其实之前的Java已经忘得差不多了。代码勉强明白什么意思,就这样一直学着Android。其实早就意识原创 2015-07-26 15:29:54 · 3557 阅读 · 7 评论 -
Java并发编程:同步容器
为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同步容器类 三.同步容器的缺陷 若有不正之处请多多谅解,并欢迎批评指正。转载 2015-08-21 15:57:32 · 1168 阅读 · 0 评论 -
JAVA 面向对象和集合知识点总结
转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46481759 在Android编程或者面试中经常会遇到JAVA 面向对象和集合的知识点。自己结合实际的编程以及阅读网上资料总结一下。java面向对象==和equal()的区别基本数据类型。 byte,short,char,int,long,flo转载 2015-07-30 13:18:00 · 2047 阅读 · 0 评论 -
CharSequence与String的区别
CharSequence与String都能用于定义字符串,但CharSequence是个接口,Sting实现了它。所以也可以把CharSequence看做String的父类。例如:public void setText(CharSequence string){...}public void setText(String string){...}这2个方法可以同时存在一个类中,因为它们参数不原创 2015-08-11 17:15:52 · 3595 阅读 · 0 评论 -
java怎么用一行代码初始化ArrayList
解决方法 1:其实,可能要初始化的"最佳"方式,ArrayList 是你写的方法,因为它不需要创建一个新的 List 以任何方式:ArrayList list = new ArrayList(); list.add("A"); list.add("B"); list.add("C");渔获是相当多的键入所需,请参阅 list 实例。有如使一转载 2015-08-08 11:53:50 · 55605 阅读 · 1 评论 -
Java基础查漏补缺:final、finally和finalize的区别
final、finally和finalize的区别是什么? 这是一道再经典不过的面试题了,我们在各个公司的面试题中几乎都能看到它的身影。final、finally和finalize虽然长得像孪生三兄弟一样,但是它们的含义和用法却是大相径庭。这一次我们就一起来回顾一下这方面的知识。 我们首先来说说final。它可以用于以下四个地方:定义变量,包括静态的和非静态的。 定义方法的参数。 定义方法。原创 2015-07-27 15:21:33 · 1151 阅读 · 0 评论 -
Java必须理解的六大基础问题
对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。问题一:我声明了什么!String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello wo转载 2014-12-02 13:09:27 · 2072 阅读 · 0 评论 -
JAVA 内存管理总结:内存泄露、数据存储、垃圾回收机制一网打尽!
1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题。(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。释放 :对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC转载 2015-04-14 11:54:05 · 2193 阅读 · 0 评论 -
Tomcat测试“http://localhost:8080”失败解决方法
昨天安装后测试还是好的,今天测试却怎么也不行,重启tomcat、更改端口号都试过了,都没能解决。后来一个高手指点我:比如tomcat6.0和jdk1.8配合的时候,可能就会出现问题。解决这个问题的方法:copy jdk1.8的lib/tools.jar到tomcat的lib/tools.jar,覆盖掉原有文件就可以试了一下果然成功!!还没有弄明白为什么,搞懂后再更。原创 2015-01-21 15:51:18 · 7426 阅读 · 0 评论 -
面试十大常见Java String问题
本文介绍Java中关于String最常见的10个问题:1. 字符串比较,使用 "==" 还是 equals() ?简单来说, "==" 判断两个引用的是不是同一个内存地址(同一个物理对象).而 equals 判断两个字符串的值是否相等.除非你想判断两个string引用是否同一个对象,否则应该总是使用 equals()方法.如果你了解 字符串的驻留 ( String In原创 2015-08-03 15:16:35 · 2026 阅读 · 1 评论 -
Java基础查漏补缺:String为什么不可修改
比较String与StringBuilder时我们都知道: String是不可修改的 StringBuilder可以修改 所以当字符串需要频繁更改时推荐使用StringBuilder.但是为什么呢?原来String对象只是一个引用,每次新建一个String对象s,编译器都会去堆中的字符串常量池中寻找有没有要匹配的字符串,有就s指向它;没有就新建一个字符串,然后s指向它。用几个图辅原创 2015-08-03 15:09:33 · 2138 阅读 · 0 评论 -
Java并发编程之ReadWriteLock,读取大数据的利器
现在都是“大数据”时代,大量的用户数据需要处理,如何保证大量数据在多线程下的安全,成了比较重要的问题。今天要学习的就是java.util.concurrent包下Locks接口的一个实现类,ReadWriteLock,读写锁。读写锁的出现时为了弥补传统同步方式synchronized的缺憾,使用synchronized同步的方法或语句,当多线程读取一个大数据时,每次只能有一个线程读原创 2015-08-21 10:11:58 · 1426 阅读 · 1 评论