![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
卢克飞
Don't aim for success if you really want it,just stick to what you love and believe in,it will come naturally .
展开
-
【Netty学习】 阻塞式IO
【Netty学习】 阻塞式IONetty学习第一弹,先从简单的阻塞式IO说起。本文主要介绍传统阻塞式socket通信,代码可分为Server端 和 Client端Server端代码package socket;public class ServerBoot { private static final int PORT = 8080; public static vo...原创 2020-01-09 18:16:09 · 435 阅读 · 0 评论 -
NIO服务端创建过程
NIO服务端创建过程//步骤1: 打开ServerSocketChannel, 用于监听客户端的连接,它是所有客户端连接的父管道,代码示例如下。 ServerSocketChannel acceptSvr = ServerSocketChannel.open();//步骤2:绑定监听端口,设置连接为非阻塞模式,示例代码如下:acceptSvr.socket().bind(new Inet...原创 2020-01-09 17:50:49 · 257 阅读 · 0 评论 -
【校招真题】字节跳动
Bytedance Efficiency Engineering团队在8月20日搬入了学清嘉创大厦。为庆祝团队的乔迁之喜,字节君决定邀请整个EE团队,举办一个大型团建游戏-字节跳动大闯关。可是遇到了一个问题:EE团队共有n个人,大家都比较害羞,不善于与陌生人交流。这n个人每个人都向字节君提供了自己认识的人的名字,不包括自己。如果A的名单里有B,或B的名单里有A,则代表A与B互相认识。同时如果A认识...原创 2019-07-05 20:04:29 · 2130 阅读 · 1 评论 -
排序汇总
奇偶交换排序 分为奇交换和偶交换,**奇交换,总是比较奇数索引以及其相邻的后续元素。而偶交换总是比较偶数索引和其相邻的后续元素。**并且,奇交换和偶交换会成对出现,这样才能保证比较和交换涉及到数组中的每一个元素。算法步骤选取所有奇数列的元素与其右侧相邻的元素进行比较,将较小的元素排序在前面;选取所有偶数列的元素与其右侧相邻的元素进行比较,将较小的元素排序在前面;重复前面两步,直到所有...原创 2019-01-30 18:26:12 · 119 阅读 · 0 评论 -
【2018校招真题】拼多多2. 大整数相乘
题目描述有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。输入描述:空格分隔的两个字符串,代表输入的两个大整数输出描述:输入的乘积,用字符串表示示例1输入72106547548473106236 982161082972751393输出70820244829634538040848656466105986748pub...原创 2019-02-02 15:59:45 · 348 阅读 · 0 评论 -
【2018校招真题】拼多多1. 最大乘积
拼多多1.最大乘积题目描述给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)输入描述:无序整数数组A[n]输出描述:满足条件的最大乘积输入3 4 1 2输出24定义五个数,一个最大,一个次大,一个第三大,一个最小,一个次小。只要找到这五个数,问题就解决了。因为最大乘积只可能是最大* 次大...原创 2019-02-02 14:47:43 · 238 阅读 · 0 评论 -
单例模式之双重检查
在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码:public class Singleton { private static Singleton uniqueSingleton; private Singleton() { } public Singleton getInstance() { if (null == uni...转载 2019-01-05 17:34:35 · 920 阅读 · 0 评论 -
【剑指offer】复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) public RandomListNode Clone(RandomListNode pHead) { // if(pHead == null...原创 2018-12-10 21:08:21 · 88 阅读 · 0 评论 -
【剑指offer】树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)第一步:在树A中查找与根节点的值一样的结点,这实际上就是树的遍历第二步:判断树A中以R为根节点的子树,是否和树B有相同的结构。// 判断 root2 是否是 root1 的子结构 public boolean HasSubtree(TreeNode root1, TreeNode root2) { ...原创 2018-12-06 23:50:54 · 86 阅读 · 0 评论 -
【剑指offer】二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同思路:根据平衡二叉树及后序遍历的性质,可以得出给定数组的最后一个数字是根节点,BST左子树的节点都小于根节点,右子树的节点都大于根节点,按照此规律可以找出序列里的左子树节点和右子树节点,接着判断,如果右子树节点里存在着小于根节点的数据,那么肯定不是...原创 2018-12-08 19:35:13 · 85 阅读 · 0 评论 -
【剑指offer】 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 这套题最直观的解法是,从头到尾遍历一遍,就能找出最小的元素,这种思路的时间...原创 2018-12-05 15:02:22 · 100 阅读 · 0 评论 -
Ch1走入并行世界
第一章、走入并行世界同步和异步 同步和异步通常用来形容一次 方法调用。同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。 异步方法的调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作,调用者就可以继续后继的工作。而 异步方法通常会在另外一个线程中“真实“的执行。整个过程,不会阻碍调用者的工作。对于调用者来说,异步调用似乎是一瞬间就完成的。如...原创 2018-11-17 17:29:25 · 158 阅读 · 0 评论 -
LVS负载均衡
LVS负载均衡LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端...原创 2018-11-19 14:46:00 · 96 阅读 · 0 评论 -
stream的filter、map和flatMap方法
Java核心技术 卷二filter、map和flatMap方法流的转换会产生一个新的流,它的元素派生自另一个流中的元素。List<String>wordList = ....;Stream<String> longWords = wordList.stream().filter(w->w.length() > 12);将所有的单词转化成小写Stre...原创 2018-11-15 21:41:44 · 4023 阅读 · 0 评论 -
Java NIO:IO与NIO的区别
一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块(IO是流),所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。 Java应用程序并非真的受着io的束缚,是JVM自身在io方面效率欠佳。操作系统与java基于流的io模型有...原创 2018-10-27 09:33:45 · 135 阅读 · 0 评论 -
spring ResourceLoader#getResource 无法找到资源 + java内部迭代与外部迭代
在使用idea的spring项目中,遇见资源无法加载的情况,如下,Resource resource = loader.getResource("classpath:/com/wisely/highlight_spring4/ch3/aware/test.txt");System.out.println("ResourceLoader加载的文件内容为: " + IOUtils.toStri...原创 2018-10-28 12:53:53 · 1237 阅读 · 0 评论 -
实现 Trie (前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("ap...原创 2018-08-06 20:53:42 · 410 阅读 · 0 评论 -
java 多线程下载 -- 断点续传
DownloadUI.java package cn.yif.URL.Download2;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event...原创 2018-06-27 10:03:24 · 194 阅读 · 0 评论 -
java实现多线程URL下载
写好下载器的UI界面,点击“下载”,触发以下事件1、构造一个下载器downloader;2、获得所有的下载信息List<DownloadInfo> info;3、添加进度条;4、开启下载线程;DownloadUI.javapackage cn.yif.URL;import javax.swing.*;import java.awt.event.ActionEvent;impor...原创 2018-06-25 17:30:18 · 855 阅读 · 0 评论