java相关
文章平均质量分 67
四夕水浩
真实是我最优秀的品质
展开
-
枚举的使用
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语翻译 2014-04-20 18:29:43 · 682 阅读 · 0 评论 -
java编绎原理
java从源文件到运行一般要经历编绎、加载、运行这么几个阶段。 编绎就是把源文件由编译器编译成字节码,然后字节码需要经过虚拟机解释运行。 下面以一个例子来说明原理。 public class Test { public static String string = "abc"; public String string2 = "abc"; { System.out.println(s原创 2015-10-15 15:55:08 · 448 阅读 · 0 评论 -
为什么使用HttpUrlConnection时候,用available方法不准确
关于inputStream对象中的available()官方文档是这样给出解释的 inputstream.available()方法返回的值是该inputstream在不被阻塞的情况下一次可以读取到的数据长度。如果数据还没有传输过来,那么这个inputstream势必会被阻塞,从而导致inputstream.available返回0。而对inputstream.read(byte[] byt原创 2015-09-21 14:50:52 · 1161 阅读 · 0 评论 -
静态内部类的使用场景
在实际的工作开发中,使用普通的内部类的场景比较多,似乎静态内部类并不常用,但是它也有其特定的使用场景。 比如说我们学习JAVA的时候,的main方法,它是static 方法,是程序的入口,但不需要每个java文件都定义这个方法吧。为了代码简洁,减少代码量 下面为了探索更多的使用场景,我们先来了解一下它的使用规则。 1、非静态内部类是不可以声明静态成员的(属性和方法),使用静态类就可以声明静态原创 2015-09-08 16:11:32 · 5325 阅读 · 1 评论 -
为什么内部类可以访问外部类的成员
内部类就是定义在一个类内部的类。定义在类内部的类有两种情况:一种是被static关键字修饰的, 叫做静态内部类, 另一种是不被static关键字修饰的, 就是普通内部类。 在下文中所提到的内部类都是指这种不被static关键字修饰的普通内部类。 静态内部类虽然也定义在外部类的里面, 但是它只是在形式上(写法上)和外部类有关系, 其实在逻辑上和外部类并没有直接的关系。而一般的内部类,不仅在形式上和外转载 2015-09-08 14:24:42 · 900 阅读 · 0 评论 -
线程同步中volatile关键字
大家知道,Java语言是支持多线程的,为了解决线程并发的问题,引入了synchronized和volatile 关键字机制。 synchronized是常用的,但是volatile关键字并不推荐使用。原因是它很容易被误用,原因可能涉及到线程内存栈的问题,下面就具体讲解一下: 下面看一个例子,我们实现一个计数器,每次线程启动的时候,会调用计数器inc方法,对计数器进行加一转载 2015-09-08 11:01:52 · 452 阅读 · 0 评论 -
java对象判断相等
在java的集合中,判断两个对象是否相等的规则是: 1),判断两个对象的hashCode是否相等 如果不相等,认为两个对象也不相等,完毕 如果相等,转入2) 2),判断两个对象用equals运算是否相等,相等就返回true class Weibo { private String name; public Weibo原创 2015-01-29 09:35:26 · 1195 阅读 · 1 评论 -
SparseArray替代hashmap
最近编程时,发现一个针对HashMap的一个提示: 翻译过来就是:用SparseArray来代替会有更好性能。 那我们就来看看源码中SparseArray到底做了哪些事情: 一、构造 从构造方法我们可以看出,它和一般的List一样,可以预先设置容器大小,默认的大小是10: [java] view plaincopy public Sp原创 2014-04-30 12:25:54 · 901 阅读 · 0 评论 -
整理一下命名规范与重构思路
1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名、静态成员变量命名 只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写 3.常量命名 只能包含字母和_,字母全部大写,单词之间用_隔开 4.图片尽量分拆成多个可重用的图片 5.服务端可以实现的,就不要放在客户端 6.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非转载 2014-08-16 01:50:09 · 623 阅读 · 0 评论 -
单例模式深入理解
所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application, 不用application的话,你也可以使用也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。 1. 最简单的实现 首先,能够想到的最简单的实现是,把类的构造函数写成private的,从而保证别的类不能实例化此类,然翻译 2015-01-29 09:59:03 · 579 阅读 · 1 评论 -
Java线程中的同步
synchronized关键可以修饰函数、函数内语句。无论它加上方法还是对象上,它取得的锁都是对象,而不是把一段代码或是函数当作锁。 1,当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一段时间只能有一个线程得到执行,而另一个线程只有等当前线程执行完以后才能执行这块代码。 2,当一个线程访问object中的一个synchronize翻译 2014-05-13 09:49:07 · 540 阅读 · 0 评论 -
java 线程池的总结与思考
在写这篇文章前,我在网上查了很多介绍这方面的文章,现在打算自己总结一下。原创 2014-10-16 14:08:09 · 617 阅读 · 0 评论 -
IO模型之高阶分析
JAVA中的IO模型主要涉及JVM与操作系统 具体原理如:对于一个IO读的操作,步骤如下: 1、数据先到操作系统的内核缓冲区 此时速度取决于网速与数据本身大小 2、络决于从内核缓冲区再到应用程序的地址空间 那么根据以上的原理,产生了几种IO模型 1、BIO 程序发送请求给内核,然后由内核去进行通信,在内核准备好数据之前这个线程是被挂起的,所以在两个阶段程序都处于...原创 2018-08-07 16:24:17 · 285 阅读 · 0 评论