Java学习
sugaryaruan
Android Developer,Kotlin lover,CodeThings公众号作者
展开
-
初始Annotation注解
基本Annotation@Override ,它强制一个子类必须覆盖父类的方法,它只能作用于方法,不能作用于其他程序元素。@Deprecated 用于表示某个程序元素(类、方法)已过时。@SuppressWarnings 指示该Annotation修饰的程序元素(以及该程序元素中的所有子元素)取消显示指定的编译器警告,它会一直作用于改程序元素的所有子元素。在括号内 使用name=va原创 2015-08-13 20:20:04 · 670 阅读 · 0 评论 -
数组和链表自制栈和队列
数组和链表是常用的两种数据结构,在翻看了Stack类,Iterable接口,Iterator接口,Queue的Java源码后,尝试用数组和链表来自己实现一下栈和队列。自己造过轮子后,实实在在的理解了轮子,才能真正深入的使用轮子。代码如下:**说明:**Stackable是我自己写的接口数组实现栈public class SugarArrayStack<E> implements Stackable<原创 2016-12-22 15:38:08 · 512 阅读 · 0 评论 -
UML类图关系及其表示
本文转载自:http://blog.csdn.net/tianhai110/article/details/6339565在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generaliz转载 2016-11-20 17:36:55 · 600 阅读 · 0 评论 -
Java内存模型和并发编程
主要参考:http://www.cnblogs.com/dolphin0520/Java内存模型(Java Memory Model,JMM)内存模型规定:所有的变量都是存在主存当中(类似于物理内存)每个线程都有自己的工作内存(类似于高速缓存)线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作。每个线程不能访问其他线程的工作内存。缓存一致性(Cache coherence原创 2016-07-03 23:44:31 · 468 阅读 · 0 评论 -
RxJava学习小结之入门篇(一)
在Java的世界里,接口是Java最强大的设计之一。笔者对接口的认识和理解包括:实现一个接口需要四个步骤接口定义:使用interface,可以外部定义,也可以在类中定义,根据实际需求来。接口调用:接口定义好了,需要调用接口方法接口实现:接口里的方法是抽象方法,需要开发人员具体的逻辑实现接口注入:把接口实现的引用传给接口调用方。接口的作用和意义:通过入参,确定了一种数据流的流动方向,从接口原创 2016-07-21 22:47:41 · 451 阅读 · 0 评论 -
java中线程队列BlockingQueue的用法
本文转载自:http://blog.itpub.net/143526/viewspace-1060365/在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场转载 2016-04-04 22:18:02 · 393 阅读 · 0 评论 -
Java的七大设计原则
本文转自:Java设计模式遵循的七大原则这篇文章,作者分析有深度,带给我一些启发和思考。最近几年来,人们踊跃的提倡和使用设计模式,其根本原因就是为了实现代码的复用性,增加代码的可维护性。设计模式的实现遵循了一些原则,从而达到代码的复用性及增加可维护性的目的,设计模式对理解面向对象的三大特征有很好的启发,不看设计模式,很难深层地体会到面向对象开发带来的好处 。转载 2015-11-19 12:03:49 · 2024 阅读 · 0 评论 -
Java中对变量范围转换引发的思考
程序中,变量活动范围有:方法/函数(局部)里的,成员变量(全局变量)当一个变量从局部变量升级到全局变量,该变量可以跨方法使用,因此在一个方法里对该变量赋值,在另一个方法里就能马上感知到并获取变量的值,体现着监听设计思想。变量升级,并不是都带来了好的方面。一个变量升级后,就要求程序员考虑是否需要对这个变量进行维护。(所谓维护就是该变量是否处在一个循环中)如果需要维护,即变量处在循环中原创 2015-10-07 23:08:17 · 907 阅读 · 0 评论 -
Java的类加载
一、通过3个步骤:加载、连接、初始化完成对类的加载。类的加载由类加载器完成。1类的加载类加载器通常由JVM提供,JVM提供的这些类加载器通常被称为系统类加载器,因此可以通过继承ClassLoader基类来创建自己的类加载器。类加载器将生成一个对应的Class对象,通常无需等到“首次使用”该类时才加载该类,Java虚拟机规范允许系统预先加载某些类。2类的连接当类被加载之后,系统为之生原创 2015-09-03 20:00:53 · 417 阅读 · 0 评论 -
类加载器详解
在Java中,一个类用其全限定类名(包名和类名)作为标识,在JVM中,一个类用其全限定类名和其类加载器作为其唯一标识。当JVM启动时,会形成由3个类加载器组成的初始化类加载器层次结构。1)Bootstrap ClassLoader:根类加载器,非常特殊,它并不是java.lang.ClassLoader的子类,而是JVM自身实现的。根类加载器所加载的核心类库在java Jdk安装路径jdk原创 2015-09-04 18:14:29 · 594 阅读 · 0 评论 -
再读编程的智慧一文有感
记得是2015年还是2016年初读过王垠的这篇文章–编程的智慧,收益良多。一些当时让我影响深刻的点,自那以后就一直用于生产了。今天重温此文,感触最深的有以下三个点:循环时避免使用continue和break,并提供了如何去掉的方法如何正确的处理Java里的异常和错误如何正确的处理Java里的空指针本文是编程的智慧一文的内容概要,当然最好的方式,是花上2到3小时认真阅读王垠的原文...原创 2018-05-05 08:30:40 · 575 阅读 · 0 评论