農農 |
|
||
2020年3月23日
摘要:
线程实现方式: 1.继承Thread类 2.实现Runnable接口 3.线程池 4.Callable 无论使用继承Thread类还是实现Runnable接口,还是使用线程池都无法解决这两个问题 /* run方法没有方法 返回值 run方法不能抛异常,如果想要解决异常,只能 用try-catch * 阅读全文
2020年3月19日
摘要:
1. 并发工具类 1.1 CountDownLatch CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 count 阅读全文
2020年3月18日
摘要:
一、小结 1. 串行和并行 串行:一个线程在处理操作 并行:多个线程在处理同一个操作 2. 什么叫并发编程:再多线程环境下,应用程序的执行 3. 并发编程 的目的:充分运用到资源,提高程序的效率 4. 什么情况下用到并发编程 : 4.1 在线程阻塞时,导致应用程序停止 4.2 处理任务时间过长时2, 阅读全文
2020年3月17日
摘要:
一.HashMap底层源码剖析 1.介绍HashMap底层用到的数据结构 数组:数组的每一项都是一个链表,其实就是数组和链表的结合体 单向链表:当发生Hash碰撞时,首先会找到数组对应位置,然后1.8采用尾插入法(1.7采用头插入法) 形成一个单向链表结构 jdk1.8 后 红黑树:当数组中每项的链 阅读全文
2020年3月16日
摘要:
一.了解Map集合吗?Map集合都有哪些实现 1.HashMap 2.HashTable 3.LinkedHashMap 4.TreeMap 5.ConcurrentHashMap 二.HashMap和HashTable之间的区别 1.HashMap:底层基于数组+单向链表(红黑树),非线程安全,默 阅读全文
2020年3月14日
摘要:
1. Vector和ArrayList以及LinkedList区别和联系,和应用场景 1.1 线程安全: Vector: 如果创建Vector时没有指定容量,则默认容量为10, 底层基于数组实现 线程是安全的,底层采用synchronized同步方法进行加锁 ArrayList: 底层基于数组 线程 阅读全文
2020年3月12日
摘要:
1.类加载过程 1.1 加载过程:将.class文件通过IO流的方式加载到内存当中 1.将.class文件字节码内容加载到内存当中 2.先会将静态数据转换成方法区中的运行的数据结构 3.在堆内存当中生成一个代表这个类的Class对象,这个Class类的对象就是作为方法区数据访问的入口 Class.f 阅读全文
2020年3月11日
摘要:
代码优化 1、尽可能使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如 静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随 着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。 2、尽量减少对变量的重复计算 明确一个概念,对方法的调 阅读全文
摘要:
1.通过javap命令查看class文件的字节码内容 1.1 编写一个简单的Test类: public static void main(String[] args) { int a = 2; int b = 5; int c = b ‐ a; System.out.println(c); } 1. 阅读全文
2020年3月10日
摘要:
通过调整参数以及配置优化Tomcat 1.在Tomcat上部署一个Web项目 将项目放到Tomcat解压目录的Webapps下 1.2 修改连接数据库参数 进入项目找到 并修改jdbc.propertise文件 修改为自己数据库的连接参数 1.3 启动Tomcat'访问Web项目 2.Jmeter压 阅读全文
|
Copyright © 2024 Baekhyunne
Powered by .NET 9.0 on Kubernetes |