- 博客(14)
- 收藏
- 关注
原创 thinking in java ---21并发5
1.当从Runnable导出一个类时,它必须具有run()方法,但是这个方法并无特殊之处 -- 它不会产生任何内在的线程能力,要实现线程能力,必须显示的将一个任务附着到线程上。 2.使用Executor替代显示的Thread对象,在任何线程池中,现有线程在可能的情况下,都会被自动复用 3.线程-Thread 任务-Runnable 4.线程池可以自定义线程工厂,这个很重要,后面比如批量设置t...
2021-09-07 22:47:15
84
原创 thinking in java ---14.类型信息
1.在runtime期间确定某个对象的实际类型,RTTI(runtime type information) 2.RTTI的本质:每个对象都有Class Object,有这个对象所有信息,在进行RTTI时使用
2020-01-15 15:51:44
73
原创 13. thinking in java --- Strings
1.不可改变,引用复制,引用传递 2.stringBuilder (1)如果要操作少量的数据用 String; (2)多线程操作字符串缓冲区下操作大量数据 StringBuffer; (3)单线程操作字符串缓冲区下操作大量数据StringBuilder。 3.无意识的递归:重写tostring,返回对象地址,egg:"地址是"+this,编译器自动将this tostring 产生递归...
2019-07-08 10:42:55
108
原创 12 thinking in java --- Exception
1.日志记录栈消息 public class LoggingExceptions2 { private static Logger logger = Logger.getLogger("LoggingExceptions2"); static void logException(Exception e) { StringWriter trace = ne...
2019-06-19 15:08:10
95
原创 thinking in java ---11.持有对象
1.集合添加元素的首选方式: Collections.addAll(collection,T...); collection.addAll()成员方法只能接受另一个Collectino对象作为参数,因此它不如Arrays.asList()或Collections.addAll,这两个方法使用的都是可变参数列表。 2.当使用Arrays.asList时返回的时大小固定的list,所以不能使用a...
2019-06-13 10:34:18
97
原创 thinking in java --- 10内部类
1.内部类能访问外围类的所有元素 2.内部类实现迭代器,比如 public class Sequence{ private Object[] seq; private class SequenceIterator{ public boolean hasNext(){}; public Object next(){}; } pub...
2019-04-08 23:52:48
110
原创 thinking in java --- 9.接口
1.interface extends interface abstract implements interface class implements interface class extends abstract 可以这样理解:interface就是接口,abstract和class就是类,所以接口和接口是继承关系(因为是同类的),接口和其他是实现关系(因为是...
2019-03-04 22:15:32
122
原创 thinking in java ---8.多态
1.把对某个对象的引用视为对其基类型的引用的做法被称作向上转型。 2.绑定:将一个方法调用同一个方法主题关联起来被称作绑定。若在程序执行前进行绑定,叫做前期绑定。后期绑定:在运行时根据对象的类型进行绑定(运行时绑定,动态绑定) 换句话说,多态是一项让程序员“将改变的事物与未变的事物分离开来”的重要技术。 3.JAVA中除了static和final(private 方法属于final)方法外,...
2019-02-28 21:36:17
133
原创 thinking in java --- 7.复用类
1.组合和继承 1.组合:组合也就是设计类的时候把要组合的类的对象加入到该类中作为自己的成员变量。has a的关系 2.继承:扩展基类,“is-a”的关系 其实也可以说is like a的关系 到底是改用组合还是用继承,一个最清晰的判断办法就是问一问自己是否需要从导出类向基类进行向上转型。 @override避免不小心将覆盖写成了重载 初始化: 1、父类静态变量和静态代码块(先声明...
2019-02-28 21:26:01
85
原创 thinking in java -- 3.操作符5.初始化与清理
1.关于equils方法,我们以前用的string.equils(String),比较的是值,Object的equils方法比较的是地址就和==一样, 因为String重写了equils方法,比较的是内容。
2019-02-19 21:07:35
91
原创 thinking in java ---5.初始化与清理
5.构造器 除了构造器外,编译器禁止在其他任何方法中调用构造器 p171 垃圾回收前需要做什么操作,可以定义一个finalize()方法在回收前进行必要的清理工作 (比如调用外部方法,eggC语言的malloc方法手动分配内存,在垃圾回收前需要调用free方法来释放,不然会内存泄漏 p173 6.垃圾回收 引用计数器,当一个对象被引用时,...
2019-02-19 21:05:51
102
原创 Git操作
1.Git 基础 - 获取 Git 仓库你应该能够配置并初始化一个仓库(repository)、开始或停止跟踪(track)文件、暂存(stage)或提交(commit)更改。 本章也将向你演示如何配置 Git 来忽略指定的文件和文件模式、如何迅速而简单地撤销错误操作、如何浏览你的项目的历史版本以及不同提交(commits)间的差异、如何向你的远程仓库推送(push)以及如何从你的远程仓库拉取(p...
2018-05-10 09:16:25
149
原创 thinking in java ---2.一切都是对象
1.成员变量 基本变量当做成员变量能被初始化,作为局部变量不能自动初始化,必须手动初始化,ps:71这节讲了一些简单的面向对象的知识,其实也没什么。。...
2018-04-24 21:51:06
93
原创 thinking in java --- 1.对象导论
1.多态:一个非面向对象编程的编译器产生的函数调用会引起所谓的前期绑定,也就是面向过程,调用函数地址在编程时就已经确定了,面向对象编程(oop),程序直到运行时才能够确定代码的地址,也就是后期绑定,在向对象发送消息时,动态绑定调用的方法。定义一个方法:doSomething(Shape shape){ doA(); doB(); } 多态实现:向上转型,子类看做是基类的过程是向上转...
2018-04-23 21:37:39
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人