thinking-in-java
统一冰红冉
这个作者很懒,什么都没留下…
展开
-
一切都是对象
一、用引用操作对象String s;这里创建的只是引用,并不是对象。String s = "abc";这里用“=”把s和一个String关联在一起,后面可以用s去操作这个对象。二、储存位置寄存器最快的存储区,它在处理器内部,它是根据需求自己进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。堆栈位于RAM中,先进后出。引用就是存放在这里,存放着堆中对应的对象的位置信息。它原创 2017-08-20 20:07:55 · 166 阅读 · 0 评论 -
操作符
1. 赋值“=”基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到了另一个地方。例如,对基本数据类型使用a=b,那么b的内容就复制给了a。若接着又修改了a,而b不会受到影响。但是在为对象“赋值”的时候,是将一个对象的引用从一个地方复制到另一个地方,改变一个会影响另一个。2. 算数操作符一元操作符:+、-二元操作符:+、-、*、/、%3. 自原创 2017-08-27 15:16:17 · 317 阅读 · 0 评论 -
控制执行流程
1. for循环Java里唯一用到逗号操作符的地方就是for循环的控制表达式。public class CommaOperator{ pulic static void main(String[] args) { for(int i =1,j=i+10; i<5;i++, j=i*2){ System.out.println("i = " + i +原创 2017-08-27 15:28:13 · 215 阅读 · 0 评论 -
初始化与清理
一、构造器1. 重载重载根据参数的数量、类型、顺序来区分同名方法,但不能根据返回值来区分。如两个方法:void f(){}int f(){ return 1;}调用的时候只写了f(),编译器无法确定你想要调用的是哪一个。2. 构造器除构造器外,编译器禁止在其他任何方法中调用构造器;二、 清理:终结处理和垃圾回收Java虚拟机具有自动垃圾回收机制,在合适的时候,虚拟机会开启一个线程,去清理垃原创 2017-08-27 16:47:29 · 286 阅读 · 0 评论 -
访问权限控制
一、包:库单元当编写一个Java源代码文件时,此文件通常被称为编译单元,而在编译单元内则可以有一个public类,该类的名称必须与文件名相同。每个编译单元只能有一个public类,否则编译器就不会接受。Java可运行程序是一组可以打包并压缩为一个Java文档文件(JAR)的.class文件。Java解释器负责这些文件的查找、装载和解释。 类库实际上是一组类文件。其中每个文件都有一个public类原创 2017-09-19 00:43:38 · 462 阅读 · 0 评论 -
复用类
一、复用类组合语法:将对象引用置于新类中;继承语法:Java会自动在导出类的构造器中插入对基类构造器的调用;代理:代理是继承与组合之间的中庸之道,因为我们将一个成员变量对象置于所要构造的类中(就像组合),但与此同时我们在新类中暴露了该成员对象的所有方法(就像继承)。代理解决了这种问题,可以向新类只暴露我们想让他使用的方法,不想让它使用的方法就不会被暴露;二、在组合与集成之间选择继承和组合都能原创 2017-09-21 23:04:00 · 298 阅读 · 0 评论 -
通过异常处理错误
一、概念异常:阻止当前方法或作用域继续执行的问题。 异常和普通问题的区别:普通问题是指,在当前环境下能得到足够的信息,总能处理这个错误。异常就不能继续下去了,因为在当前环境下无法获得必要的信息来解决问题。你所能做的就是从当前环境跳出,并且把问题提交给上一级环境,这就是抛出异常时所发生的事情。当异常抛出时,首先将使用new在堆上创建异常对象。然后,当前的执行路径被终止,并且从当前环境中弹原创 2017-11-06 21:38:07 · 217 阅读 · 0 评论 -
持有对象
Java提供了三大类容器:数组——将数字与对象联系起来;Collection——保存单一的元素;Map——将对象与对象相关联。 一、Collection Arrays.asList()接受一个数组或是一个用逗号分隔的元素列表,并将其转换为一个List对象;Collections.addAll()方法接受一个Collection对象,以及一个数组或是一个用逗号分隔的列表,将元素添加到Collec原创 2017-10-29 19:41:48 · 351 阅读 · 0 评论 -
字符串
String对象是不可变的,你可以给一个String对象加任意多的别名。因为String对象具有只读特性,所以指向它的任何引用都不可能改变它的值,因此,也就不会对其他引用有什么影响。 一、重载“+”与StringBuilder不可变性会带来一定的效率问题。为String对象重载的“+”操作符就是一个例子。重载的意思是,一个操作符在应对于特殊的类时,被赋予了特殊的意义。在使用“+”拼接字符串时,编译原创 2017-12-27 00:48:58 · 154 阅读 · 0 评论