mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
Java线程池使用
2024-02-03
3602 字
使用ThreadPoolExecutor手动声明线程池以避免OOM风险,监测线程池状态并建议不同业务使用不同线程池。合理配置线程池参数,避免重复创建和耗时任务,确保线程池命名以便于问题定位。注意线程池与ThreadLocal的共用问题,推荐使用TransmittableThreadLocal解决上下文传递问题。
Cover Image of the Post
Java JMM内存模型
2024-02-01
5455 字
Java内存模型(JMM)定义了共享变量在多线程环境中的可见性,涉及CPU缓存模型和指令重排序。JMM通过规范线程与主内存的关系,确保共享变量的可见性和一致性,解决了多线程编程中的问题。关键概念包括happens-before原则、原子性、可见性和有序性,确保在并发环境中程序的正确执行。
Cover Image of the Post
java并发编程
2024-01-30
22410 字
本文介绍了Java并发编程的基础知识,包括线程与进程的定义、Java线程的实现机制、线程的生命周期、并发与并行的区别、同步与异步的概念,以及多线程的优缺点。还探讨了线程安全、死锁及其避免方法,volatile关键字的使用,乐观锁与悲观锁的区别,以及如何使用线程池和Future类来提高程序的执行效率。最后,介绍了CyclicBarrier和CountDownLatch等工具的应用场景和原理。
Cover Image of the Post
java集合知识
2024-01-26
11826 字
Java集合主要由Collection和Map接口派生,包含List、Set、Queue等子接口。List用于存储有序可重复元素,Set用于存储唯一元素,Queue用于特定顺序存储元素,Map用于存储键值对。选择集合时应根据需求,如线程安全、排序等。Java集合提供灵活的数据存储方式,优于数组,支持多种操作。ArrayList和LinkedList在插入删除性能上有所不同,HashMap与Hashtable在线程安全和效率上存在差异,ConcurrentHashMap提供更好的并发支持。
Cover Image of the Post
java反射&代理面试知识
2024-01-24
3145 字
反射是框架的核心,允许在运行时分析类和调用方法,广泛应用于Spring等框架。反射的优点是灵活性高,但可能带来安全问题和性能损失。代理模式通过代理对象扩展目标对象功能,分为静态代理和动态代理,后者更为灵活且常用于框架中。JDK动态代理只能代理实现接口的类,而CGLIB可以代理未实现接口的类。动态代理在运行时生成字节码,提供更高的灵活性和效率。
Cover Image of the Post
java面试基础
2024-01-19
21838 字
Java语言的特点包括简单易学、面向对象、平台无关性、多线程支持、可靠性和安全性。Java SE是基础版,适合桌面应用,Java EE是企业版,适合复杂的企业级应用。JVM、JDK和JRE的区别在于JVM运行字节码,JDK是开发工具包,JRE是运行环境。Java使用字节码提高效率,支持编译与解释并存。异常处理分为Checked和Unchecked,使用try-catch-finally结构。泛型增强代码可读性,反射提供运行时分析能力。序列化用于对象持久化,IO流分为字节流和字符流,设计模式如装饰器和适配器在IO中应用广泛。
Cover Image of the Post
spider基础库学习
2024-01-18
14908 字
学习爬虫基础库,包括Python的urllib和requests库的使用。介绍了HTTP请求的构造、异常处理、URL解析、正则表达式的应用,以及如何提取猫眼电影排行榜的信息。强调了请求头、Cookies、代理设置和会话维持等高级用法。
Cover Image of the Post
爬虫基础知识
2024-01-13
14779 字
爬虫是自动化程序,用于获取网页信息。基本原理包括发送HTTP请求获取网页源代码,提取所需数据,并将其保存。网页由HTML、CSS和JavaScript构成,爬虫需处理静态和动态网页。会话和Cookies用于维持用户状态,代理服务器可隐藏真实IP以防止被封锁。常用的请求方法有GET和POST,响应状态码指示请求结果。爬虫需遵循反爬虫策略,使用代理和适当的请求头以提高抓取效率。
Cover Image of the Post