- 博客(41)
- 资源 (1)
- 收藏
- 关注
原创 Python中 utf-8和gbk以及unicode编码
py3.x:unicodepy2.x: ascaiimac/linux:utf-8windows:gbkgbk =decode=>unicode=encode=>utf-8gbk:一个汉字包含2个字节utf-8:一个汉字包含3个字节
2024-04-22 21:13:49 328
原创 【Java面试】fail-safe 和 fail-fast
原因是采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历。由于迭代时是对原集合的拷贝进行遍历,所以在遍历过程中对原集合所作的修改并不能被迭代器检测到。: 表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出 ConcurrentModificationException 异常,从而导致遍历失败。,表示失败安全,也就是在这种机制下,出现集合元素的修改,不会抛出ConcurrentModificationException。
2023-11-02 15:20:43 164
原创 【Java面试】AQS?
AQS 是多线程同步器,它是 J.U.C 包中多个组件的底层实现,如 Lock、CountDownLatch、Semaphore 等都用到了 AQS. 从本质上来说,AQS 提供了两种锁机制,分别是排它锁和共享锁。,就是存在多线程竞争同一共享资源时,同一时刻只允许一个线程访问该共享资源,也就是多个线程中只能有一个线程获得锁资源,比如 Lock 中的 ReentrantLock 重入锁实现就是用到了 AQS 中的排它锁功能。
2023-11-02 15:02:28 103
原创 【Java面试】Java集合总结
HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到hash 值,然后通过(n-1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。内存空间占用:LinkedList 比 ArrayList 更占内存,因为LinkedList 的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
2023-11-02 13:58:22 113
原创 【Java面试】面试被问lock和synchronized的区别?
而非公平锁,就是不管是否有线程在排队等待锁,它都会尝试去竞争一次锁。synchronized在性能方面和lock相差不大,在实现上会有一个区别synchronized引入了偏向锁,轻量级锁,重量级锁,以及锁升级的机制去实现锁的优化,而lock则用到了自旋锁的方式实现性能优化。并且我们可以通过synchronized加锁对象的生命周期,来控制锁的作用范围,比如锁对象是静态对象,或者类对象,那么这个锁就是属于全局锁,如果锁对象是实例对象,那么这个锁的范围取决于这个对象的生命周期。2.修饰在同步代码块上。
2023-11-02 12:12:42 63
原创 Python3 列表(list)基础操作
列表(List)在Python中应用的场景非常多,学习Python,需要熟悉列表各种操作,因此本文记录一下列表的学习过程,加深对列表印象。
2022-09-07 19:31:01 802
原创 学会Java IDEA常用快捷键提升Java编程效率
使用idea快捷键,实现快速写出main方法、输入输出语句、for循环、单行或多行注释、撤销等基础常用操作,提升Java编程效率。
2022-05-03 17:27:28 2571
python实现自定义时间间隔更换壁纸并封装成桌面程序
2022-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人