因上一版本排版太乱,现重新发布
在开始整理之前先推荐我自己在用的笔记软件,以及常用的网站
笔记软件:
印象笔记
优点:客户端支持多端登录,且能设置权限访问,多端登录可同步笔记,允许存储文档,文字,图片
缺点:非会员只支持3个客户端登录,非会员每月流量限制 (会员140一年)
2.有道云笔记
优点:可支持PC端,APP端双端同步,内容存储量大,每天签到就能领空间
缺点:功能菜单较少,相对印象笔记分类功能少,一般月初用印象笔记,月中后用有道云
特别推荐高质量网站:
http://bj.96weixin.com/,微信公众号排版网站,提供素材
https://www.gaoding.com/稿定设计,封面,Logo等
http://www.nicetool.net/ 网如其名,非常Nice的网站
在整理知识点之前,小伙伴们又提出了问题
虽然重写了toString方法,而且还用到了StringBuilder拼接字符串,但是真正我认为在newhashMap的时候put进去的key对应的value已经生效,在外引用指向了新的对象,但是并不可能改变map的value值,所以结果仍是张三
除非引用指向变了在没有hashmap的情况打印结果会变
我们稍微改变下代码
public class Test02 {
public void changeValue1(int age){
age=30;
}
public void changeValue2(Person person){ person.setName("张三");
}
public void changeValue3(String str){
str="xxxx"; }
public static void main(String[] args) { /*Person person = new Person("张三"); //HashMapmap = new HashMap<>(); //map.put("person",person);
person = new Person("李四"); System.out.println(person.toString());*/
Test02 test02 = new Test02();
int age=20;
test02.changeValue1(age); System.out.println("age: \t"+age);
Person person = new Person("李四"); test02.changeValue2(person); System.out.println("personName:\t"+person.getName());
String str="abc";
test02.changeValue3(str); System.out.println(str);
}}
class Person{
private String name;
Person(String name){
this.name=name;
}
public String getName() {
return name; }
public void setName(String name) {
this.name = name; }
@Override
public String toString() {
final StringBuilder sb=new StringBuilder("Person{"); sb.append("name=").append(name).append('\''); sb.append('}'); return sb.toString(); }}
猜一下运行结果,文末贴出结果
#######分割线#######
线程池---ThreadPool
线程池,数据库连接池等池化技术,意在将所需功能提前创建,等待使用,来降低资源消耗,提高响应速度,易于管理的技术
线程池的特点主要是:线程复用,控制最大并发数,管理线程
线程池是通过Executor框架实现的。该框架用到了Executor,Executors,ExecutorService,ThreadPoolExecutor这几个类。
线程池有几种? 5种
看源码:打开Executors类-->
常用得是三种
newFixedThreadPool
newSingleThreadExecutor
newCachedThreadPool
实际用的是哪一种?
打开阿里巴巴开发手册1.40版本
详细的列出应该用ThreadPoolExecutor,且列出了不能用的原因
当我们用ThreadPoolExecutor去创建线程池的时候,就需要我们填写相应的参数
idea已经显示提示一些参数意义,线程池共7大参数,
int corePoolSize:常驻线程数
int maximumPoolSize:线程池同时执行的最大线程数,>=1
long keepAliveTime:空闲线程的存活时间
TimeUnit unit:keepAliveTime的单位
BlockingQueueworkQueue:被提交等待被执行的任务
ThreadFactory threadFactory:工作线程的线程工厂
RejectedExecutionHandler handler:线程池拒绝策略