
java基础
林胖子的私生活
这个作者很懒,什么都没留下…
展开
-
EffecitveJava 第三章
类和接口1.使类和成员的可访问性最小,尽量隐藏内部的细节把他的API与是实现隔离出来。吗并且要uqeb除了公有静态final域的特殊情况下,公有类不应该包含公有域。并且要确保公有静态final域所引用的对象都是不可变的如果类具有这样的域或者访问方法,客户端能够修改数组的内容。这是要给安全问题public static final Thing[] VALUES={....};虽然引用本身不能被修改,原创 2016-05-30 00:33:46 · 407 阅读 · 0 评论 -
EffectiveJava第5.6.7章
多使用枚举 检查方法的有效性 在方法的内部对传递进来的数据进行判断并合理的抛出异常或处理。 必要时进行保护性拷贝 假设类的客户端会尽其所能来破坏这个类的约束条件,因此必须保护性的设计程序。 实际上,只有当有人视图破坏系统的安全性才有可能发生或者你的API产生误解导致使用的人做出不可预期的行为。 没有对象的帮助,虽然另一个类不可能修改对象的内部状态,但是对象很容易在无意识的情况下通过这个帮原创 2016-05-30 01:18:48 · 290 阅读 · 0 评论 -
Java并发编程
Java并发编程来自Java并发编程的艺术并发一定比串行快么?这个问题肯定是错的,并发比串行慢的原因在于:线程有创建和上下文切换的开销上下文切换即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。CPU通过时间片分配的算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保持上一个任务的状态,以便下次切换回这个任务时,可以再加之这个任务原创 2016-09-18 18:36:24 · 2049 阅读 · 2 评论 -
Java8(下)
大多数例子来着Java8实战这本书籍中,附上作者的github https://github.com/java8行为的多继承如果一个接口 后许多实现类,突然 这个接口 添加了一个新的 方法,它的所有实现类 都必须实现这个方法 在开发中 这是让人爆炸的 因为 我有些类并不需要这个方法 所以 java8中引入 了defalut 来解决这个问题public interface Sized{ i原创 2016-08-14 23:55:07 · 354 阅读 · 0 评论 -
Java8(上)
JAVA8-实战 > 总结在Android Studio 使用Java8 在最外层的 build.gradle dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.5' } 在需要的modelu中build.gradle 添加 apply plugin: 'me.tatarka.retrolambd原创 2016-08-08 22:31:29 · 402 阅读 · 0 评论 -
java8(中)
大多数例子来着Java8实战这本书籍中,附上作者的github https://github.com/java8流的操作符常见的操作符 List<String> threehighCalorcDishNames = menu .stream() .filter(dish -> dish.getCalories() > 30)原创 2016-08-14 17:29:53 · 1332 阅读 · 0 评论 -
Lambda表达式
Lamdb 表达式理解较为简洁的表示为可传递一个匿名函数的一种方式:它没有名称,但是他又参数列表,函数主题,返回类型,可能还有一个可以抛出的异常列表。Java8中的有效表达(String s)->s.length() 表示具有一个String 类型的数返回一个int 类型 隐含了return(Appel a)->a.getWeight()>150 接受一个对象返回一个boolean 类型(in原创 2016-08-09 00:36:15 · 638 阅读 · 0 评论 -
垃圾收集器与内存分配策略
GC需要完成的三件事情哪些内存需要回收什么时候回收如何回收在Java内存运行时区域的各个部分,其中程序计数器,虚拟机栈 本地方法栈 3个区域随着线程生,随着线程灭;栈中 的栈帧随着方法的进入和退出执行入栈和出栈的操作。每一个栈帧分配多少内存基本上在类结构确定下来 的时候就已经知道了,因此这几个区域的内存分配和回收都具备确定性,在这几个区域不考虑内存回收的问题,而堆和方法区不一样,一个接口多个实现类所翻译 2016-07-17 21:38:43 · 3612 阅读 · 0 评论 -
Java虚拟机学习笔记-第二章(下)
对象的创建new对象当虚拟机遇到一个new的指令,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且去检查这个符号引用代表的类是否被加载,解析和初始化过。如果没有,那必须先执行相应的类加载过程。当类加载通过后,虚拟机会为新生对象分配内存空间。对象所需内存的大小在类加载完成后边可以完全确定。分配方式为对象分配空间的任务等同于把一块确定大小的内存从java堆中划分出来。 假原创 2016-07-14 23:48:53 · 283 阅读 · 0 评论 -
Java虚拟机学习笔记-第二章(上)
深入理解Java虚拟机 学习地址http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html 第二章 自动内存管理机制 java在执行java程序的过程会把它所在管理的内存划分为若干不同的区域。有的区域随着虚拟机进程的启动而存在,有点依赖用户现场启动和结束而建立销毁程序计数器:程序计数器是一个比较小的内存构建,是当前现场中所执行的字原创 2016-07-14 23:05:53 · 304 阅读 · 0 评论 -
向上转型与向下转型
向上转型,将子类型隐藏。就不能使用子类的特有方法了比如 有一个抽象类Animal 有eat()方法,类Pig 继承了Animal,复写了eat()方法之外,还定义了自己独有的sleep()方法。此时 如果 创建Pig的实例,并将类型向上转型为 Animal,将不能访问Pig类的sleep方法,而只能访问父类 Animal定义的方法。那么如何让实际上是内容是 Pig类型的引用A原创 2016-03-13 11:28:54 · 555 阅读 · 0 评论