摘要: 什么是synchronized synchronized可以保证某个代码块或者方法被一个线程占有,保证了一个线程的可先性。java 1.6之前是重量级锁,在1.6进行了各种优化,就不那么重了,并引入了偏向锁和轻量级锁,以及锁的存储结构和升级过程。 synchronized实现方式 Java中每个对象 阅读全文
posted @ 2020-11-10 10:22 lippon 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 链接: leetcode. 解题思路:暴力的方法就是一个一个乘,时间是O(n)的。快速幂的核心思想就是,用位的方式,快速相乘。幂的本质是 阅读全文
posted @ 2020-11-09 19:58 lippon 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 什么是volatile Java语言允许线程访问共享变量,为了确保共享变量能够被准确一致地更新,如果一个字段被声明为volatile,那么Java内存模型将会确保所有线程看到这个变量时值是一致的。保证了多处理器开发中,共享变量的可见性。 volatile的使用 public volatile int 阅读全文
posted @ 2020-11-09 14:13 lippon 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 并发编程是为了使程序运行得更快,但是,不是启动更多得线程就能最大限度地执行并发,也不是线程更多就能使得程序运行得更快,而且并发编程更容易产生错误,如果要高效且正确地执行并发,就需要注意这三种问题 上下文切换死锁资源限制 上下文切换 线程运行机制 一个CPU同时只能运行一个线程;操作系统给每条分配时间 阅读全文
posted @ 2020-11-09 09:33 lippon 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。 给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知 阅读全文
posted @ 2020-11-08 16:28 lippon 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能移动一个盘子; (2) 盘子只能从柱子顶端滑出移到下一根柱子; (3) 盘子只 阅读全文
posted @ 2020-11-08 15:21 lippon 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 链接: link. 解题思路:利用单调栈的思想。 从左向右遍历,栈中不断存储左侧的柱子,而且是单调下降的。当后者的柱子长度大于前者的,就会形成一个蓄水区域,当一个蓄水区域形成之后,短的柱子就没有用了, 阅读全文
posted @ 2020-11-07 20:05 lippon 阅读(326) 评论(0) 推荐(0) 编辑
摘要: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。 链接: leetcode. 解题思 阅读全文
posted @ 2020-11-07 13:58 lippon 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 是什么是类加载机制 Java虚拟机将class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程就是类加载机制。 类的生命周期 一个类从加载到内存开始,到卸载出内存为止,一共经历七个阶段: 加载——>验证——>准备——>解析——>初始化——>使用 阅读全文
posted @ 2020-11-07 11:11 lippon 阅读(120) 评论(0) 推荐(0) 编辑
摘要: Java的无关性 由于计算机领域中有很多操作系统和硬件平台同时在竞争,所以,很多编程语言的程序设计会与其运行的平台和操作系统产生耦合,这样就大大增加了程序员的工作,为了适应不同的平台,需要修改很多代码。这样,具有无关性特征的Java语言就开始受欢迎了。 平台的无关性:由于有可以运行在不同硬件平台和操 阅读全文
posted @ 2020-11-06 10:47 lippon 阅读(84) 评论(0) 推荐(0) 编辑