05 2020 档案

摘要:相同点: 两者都是接口;(废话) 两者都可用来编写多线程程序; 两者都需要调用Thread.start()启动线程; 不同点: 两者最大的不同点是:实现Callable接口的任务线程能返回执行结果;而实现Runnable接口的任务线程不能返回结果; Callable接口的call()方法允许抛出异常 阅读全文 »
posted @ 2020-05-31 23:45 程序员小宇 阅读(398) 评论(0) 推荐(0) 编辑
摘要:加载–>连接->初始化 父类静态变量、 父类静态代码块、 子类静态变量、 子类静态代码块、 父类非静态变量(父类实例成员变量)、 父类构造函数、 子类非静态变量(子类实例成员变量)、 子类构造函数。 1.静态代码块总是最先执行的; 2.子类和父类的静态代码块都执行完之后,在执行父类的非静态代码块和父 阅读全文 »
posted @ 2020-05-31 23:32 程序员小宇 阅读(203) 评论(0) 推荐(0) 编辑
摘要:缓存的区别 缓存分为本地缓存和分布式缓存。以java为例,使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。 使用redis或memcached之类的称为分布式缓存,在多 阅读全文 »
posted @ 2020-05-31 23:16 程序员小宇 阅读(836) 评论(0) 推荐(0) 编辑
摘要:linux中如何查看某个端口是否被占用 之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下: 1.netstat -anp |grep 端口号 如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以roo 阅读全文 »
posted @ 2020-05-31 22:44 程序员小宇 阅读(5033) 评论(0) 推荐(1) 编辑
摘要:线程是否安全: HashMap 是非线程安全的,HashTable 是线程安全的;HashTable 内部的方法基本都经过synchronized 修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!); 效率: 因为线程安全的问题,HashMap 要比 HashTabl 阅读全文 »
posted @ 2020-05-31 17:16 程序员小宇 阅读(128) 评论(0) 推荐(0) 编辑
摘要:RandomAccess用来当标记,是一种标记接口。 用处是当要实现某些算法时,会判断当前类是否实现了RandomAccess接口,会选择不同的算法。 接口RandomAccess中内容是空的,只是作为标记用。比如List下的ArrayList和LinkedList。其中ArrayList实现了Ra 阅读全文 »
posted @ 2020-05-31 17:09 程序员小宇 阅读(643) 评论(0) 推荐(0) 编辑
摘要:接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。 接口中除了 static、final 变量,不能有其他变量,而抽象类中则不一定。 一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过 extends 阅读全文 »
posted @ 2020-05-31 17:01 程序员小宇 阅读(248) 评论(0) 推荐(0) 编辑
摘要:java中不管是值对象还是引用对象都是值传递,在其他方法里面改变引用类型的值肯定是通过引用改变的,当传递引用对象的时候传递的是复制过的对象句柄(引用),注意这个引用是复制过的,也就是说又在内存中复制了一份句柄,这时候有两个句柄是指向同一个对象的,所以你改变这个句柄对应空间的数据会影响外部的变量的,虽 阅读全文 »
posted @ 2020-05-31 16:49 程序员小宇 阅读(377) 评论(0) 推荐(0) 编辑
摘要:由上图可以看出: 线程创建之后它将处于 NEW(新建) 状态,调用 start() 方法后开始运行,线程这时候处于 READY(可运行) 状态。可运行状态的线程获得了 cpu 时间片(timeslice)后就处于 RUNNING(运行) 状态。 详情参考:https://blog.csdn.net/ 阅读全文 »
posted @ 2020-05-31 16:22 程序员小宇 阅读(146) 评论(0) 推荐(0) 编辑
摘要:都是面向对象的语言,都支持封装、继承和多态 Java 不提供指针来直接访问内存,程序内存更加安全 Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。 Java 有自动内存管理机制,不需要程序员手动释放无用内存 在 C 语言中,字符串或字符数组最后都 阅读全文 »
posted @ 2020-05-31 15:22 程序员小宇 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 阅读全文 »
posted @ 2020-05-31 15:15 程序员小宇 阅读(142) 评论(0) 推荐(0) 编辑
摘要:方法 1:通过 Scanner Scanner input = new Scanner(System.in); String s = input.nextLine(); input.close(); 方法 2:通过 BufferedReader BufferedReader input = new 阅读全文 »
posted @ 2020-05-31 15:12 程序员小宇 阅读(237) 评论(0) 推荐(0) 编辑
摘要:同步IO和异步IO 参考答案: IO操作主要分为两个步骤,即发起IO请求和实际IO操作,同步IO与异步IO的区别就在于第二个步骤是否阻塞。 若实际IO操作阻塞请求进程,即请求进程需要等待或者轮询查看IO操作是否就绪,则为同步IO。 若实际IO操作并不阻塞请求进程,而是由操作系统来进行实际IO操作并将 阅读全文 »
posted @ 2020-05-31 15:06 程序员小宇 阅读(994) 评论(0) 推荐(0) 编辑
摘要: 阅读全文 »
posted @ 2020-05-31 14:45 程序员小宇 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 阅读全文 »
posted @ 2020-05-31 14:38 程序员小宇 阅读(150) 评论(0) 推荐(0) 编辑
摘要:先说不是原子的,因为这个是分为三步,读值,+1,写值。在这三步任何之间都可能会有CPU调度产生,造成i的值被修改,造成脏读脏写。 接下来说volatile不能解决这个线程安全问题。因为volatile只能保证可见性,不能保证原子性。回答这个只为了让面试官晓得你考虑周全,知识面广。 接下来说可以用锁。 阅读全文 »
posted @ 2020-05-30 12:16 程序员小宇 阅读(268) 评论(0) 推荐(0) 编辑
摘要:UML类图的作用是描述程序中类的信息及各个类之间的关系。 所有的面向对象(Object Oriented)语言都离不开类的概念,理解了程序中类的设计也就理解了程序的一半。但类的具体描述方式在各个类中都不一样,UML类图的提出是为了能够脱离语言的限制,抽象地描述各个类的信息及各个类之间的关系。这是UM 阅读全文 »
posted @ 2020-05-30 12:14 程序员小宇 阅读(102) 评论(0) 推荐(0) 编辑
摘要:请叙述一下您对线程池的理解? 回答这个面试题要从线程池的好处,线程池如何使用和线程池启动时执行的策略来说 线程池的好处: 降低资源消耗:重复利用线程池中的线程节省线程创建和销毁带来的消耗; 提高性能:当任务需求时,可以不用创建线程直接执行,主要是直接从线程池中取出线程去执行; 提高线程的可管理性:线 阅读全文 »
posted @ 2020-05-30 12:04 程序员小宇 阅读(156) 评论(0) 推荐(0) 编辑
摘要:数据库事务的隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读这几类问题。 Read UnCommitted(读未提交) 阅读全文 »
posted @ 2020-05-30 11:44 程序员小宇 阅读(631) 评论(0) 推荐(0) 编辑
摘要:Hashtable是java一开始发布时就提供的键值映射的数据结构,而HashMap产生于JDK1.2。虽然Hashtable比HashMap出现的早一些,但是现在Hashtable基本上已经被弃用了。而HashMap已经成为应用最为广泛的一种数据类型了。造成这样的原因一方面是因为Hashtable 阅读全文 »
posted @ 2020-05-30 11:34 程序员小宇 阅读(253) 评论(0) 推荐(0) 编辑
摘要:分为“转、处、测、取、比”五类(注:省略了参数,主要是为了说明作用,且只列举了常用方法) 第一块:转换类(to开头的,以及所有的valueOf) toLowerCase(),将字符串转换为小写形式 toUpperCase(),将字符串转换为大写形式 toCharArray(),将字符串转换为字符数组 阅读全文 »
posted @ 2020-05-30 11:24 程序员小宇 阅读(304) 评论(0) 推荐(0) 编辑
摘要:前言 MySQL中有以下日志文件,分别是: 1:重做日志(redo log) 2:回滚日志(undo log) 3:二进制日志(binlog) 4:错误日志(errorlog) 5:慢查询日志(slow query log) 6:一般查询日志(general log) 7:中继日志(relay lo 阅读全文 »
posted @ 2020-05-30 09:29 程序员小宇 阅读(177) 评论(0) 推荐(0) 编辑
摘要:什么是约瑟夫环问题 已知 n 个人(以编号1,2,3 … n 分别表示)围成一圈。从编号为 1 的人开始报数,数到 m 的那个人出列;他的下一个人又从 1 开始报数,数到 m 的那个人又出列;依此规律重复下去,直到最后剩下一个人。要求找出最后出列的人的编号 可能有些同学看到的不是从编号为 1 的人开 阅读全文 »
posted @ 2020-05-30 09:15 程序员小宇 阅读(1249) 评论(2) 推荐(1) 编辑
摘要:一个月前我打开win10左下角搜索的时候,老是有微软新版浏览器的广告。我刚才是内心其实是抵触的,直到我发现了它的奇妙之处。 这是原始的: 是经过我diy之后的界面。 看到最后教你如何白嫖youtube,p站,reddit等网站。网站秒开,1080毫无压力。先放个图 **ps: **我个人比较喜欢对此 阅读全文 »
posted @ 2020-05-16 14:29 程序员小宇 阅读(1391) 评论(0) 推荐(0) 编辑
摘要:上传: Client通过Tracker server查找可用的Storage server。 Tracker server向Client返回一台可用的Storage server的IP地址和端口号。 Client直接通过Tracker server返回的IP地址和端口与其中一台Storage ser 阅读全文 »
posted @ 2020-05-11 22:37 程序员小宇 阅读(1966) 评论(0) 推荐(1) 编辑
摘要:思路 1. 首先检查文件后缀是否是合法(比如.png,.jpg),列出对应的媒体类型(image/png,image/jpeg) 2. 检查文件的内容是否是图片,防止破坏者将脚本后缀改为图片格式,图片是有宽和高的 3. 保存到图片服务器,比如fastDFS图片存储服务器 4. 回显Url(本案例将本 阅读全文 »
posted @ 2020-05-11 21:46 程序员小宇 阅读(245) 评论(0) 推荐(0) 编辑
摘要:Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK. 1.8 和之前的版本略有不同,下面会介绍到。 JDK 1.8之前: JDK 1.8 : 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的: 堆 方法区 直接内存(非运行时数据区的一部分) " 阅读全文 »
posted @ 2020-05-11 18:14 程序员小宇 阅读(270) 评论(0) 推荐(0) 编辑
摘要:我们先看一段代码: 启动两个线程,每个线程中让静态变量count循环累加100次。 最终输出的count结果一定是200吗?因为这段代码是非线程安全的,所以最终的自增结果很可能会小于200。我们再加上synchronized同步锁,再来看一下。 加了同步锁之后,count自增的操作变成了原子性操作, 阅读全文 »
posted @ 2020-05-11 17:16 程序员小宇 阅读(735) 评论(0) 推荐(0) 编辑
摘要:思路 题解 阅读全文 »
posted @ 2020-05-11 13:03 程序员小宇 阅读(97) 评论(0) 推荐(0) 编辑
摘要:框架 思路: 明确dp数组的定义,dp[i][k][0]代表 第i天,至多交易K次,并且手上还有股票的最大利润 明确选择:每天都有三种「选择」:买入、卖出、无操作,我们用 buy, sell, rest 表示这三种选择 一次交易最大利润 多次交易含冷冻期 多次交易含手续费 阅读全文 »
posted @ 2020-05-10 20:49 程序员小宇 阅读(147) 评论(0) 推荐(0) 编辑
摘要:Serializable,之前一直有使用,默认的实体类就会实现Serializable接口,对具体原因一直不是很了解, 同时如果没有实现序列化,同样没什么影响,什么时候应该进行序列化操作呢?今天查了下资料,大致总结一下。 首先,什么是序列化? 其实序列化,它是完整的保存了某一状态下的对象信息,是一个 阅读全文 »
posted @ 2020-05-06 09:17 程序员小宇 阅读(2026) 评论(0) 推荐(0) 编辑
摘要:遍历二叉树的方法合集 递归法 递归法的重点是明确递归的结果,考虑本次递归会产生什么 前序遍历 中序遍历 后序遍历 非递归法 非递归法就是模拟栈的运行,让你对栈的执行过程更加清楚 前序遍历 前序遍历是根左右,这是出栈顺序 中序遍历 前序遍历是左根右,这是出栈顺序 先将所有的左节点压入栈中,直到没有左节 阅读全文 »
posted @ 2020-05-04 12:01 程序员小宇 阅读(291) 评论(0) 推荐(0) 编辑
摘要:思路: 题解: 阅读全文 »
posted @ 2020-05-03 20:24 程序员小宇 阅读(107) 评论(0) 推荐(0) 编辑
摘要:题解1: 哈希表 空间和时间都是O(n) 题解2: 原地修改 空间O(1) 题解3: DFS 图的基本单元是 顶点,顶点之间的关联关系称为 边,我们可以将此链表看成一个图 阅读全文 »
posted @ 2020-05-03 20:19 程序员小宇 阅读(117) 评论(0) 推荐(0) 编辑
摘要:思路: 根据左,右,后的顺序可以确定根节点;根据 左 后 可以划分左右子树(使用下标划分左右子序列) 题解1:递归 题解2:单调栈 简单的说,就是每次都找到剩下的序列中,不能超过的最大值,如果序列中的元素超过该最大值,则不是平衡搜索树。 链接:https://leetcode cn.com/prob 阅读全文 »
posted @ 2020-05-02 11:52 程序员小宇 阅读(180) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示