- 博客(43)
- 收藏
- 关注
原创 kotlin定时加载数据库并将内容加载进Jieba词词库
jieba的Java版本吧add_word丧心病狂的private修饰,为了这个写个反射没啥意思.咱就用加载自定义词典的那个方法吧!/** * 结巴分词,支持动态加载自定义词库 * @author scz * @date 2019/12/21 */object JieBaParticiple { private val dictPath = "jiebawords/dict....
2019-12-26 10:43:39
368
2
原创 kotlin写一个静态块
神奇的语言kotlin…写一个类运行时只加载一次的kotlin方法…就很神器…这东西没有static鼓弄半天companion object { init { //你想静态化的东西,外面不要有函数 } }相当于Java类的静态部分.特别是,它们在第一次使用之前被初始化,这样可以使用它们的init块作为Java静态初始...
2019-12-21 16:36:46
1857
原创 根据IP和子网掩码计算网络段内全部地址
一个神奇的需求,给个TXT上吗都是IP和子网掩码127.0.0.1,255.255.255.0;127.1.1.1,255.255.255.0;127.1.1.118,255.255.255.0;就类似这样吧,根据这个求出来全部的地址,然后再生产一个TXT…(能有3k多个,为啥要TXT至今入库不好吗还挺有意思…直接代码吧找了个工具类特别好用package com.dxm;...
2019-11-25 10:40:39
1236
原创 tomcat+shell,war包上传后自动化部署
tomcat自动化部署shell因为测试环境不能链接SVN,(这svn得挂VPN有毒),所以没法直接拉取代码…就FZ上传war包之后自动化部署吧…各种路径就不给了,头会写shell,写完还挺好用的。直接源码吧#/bin/bashtomcat_dir = "***"code_dir = "**"war_dir = "**"war_name = "**"#关闭tomcat杀死进程...
2019-10-30 15:30:29
576
原创 创新工场涂鸦移动
转眼…9月末了秋招进入了尾声依然没有互联网的offer,甚至面试都没有多少,好难啊。分享两道涂鸦移动的笔试题。赶紧自己是A了但是没有被发起面试,请大佬看看有什么问题吧。给定一个只包含小写字母的字符串,我们通过如下规则分割它:1.一个片段中包含的字符不允许出现在其他片段内。2.分割的片段数应尽可能的多。请实现一个函数,输出分割的片段。例如:输入aabbbacceddefgkifk 输...
2019-09-29 14:09:09
766
2
原创 校招面试知识点总结
文章目录1.数据库1.1 基础SQL1.1.1 左链接,右链接,内链接1.2 MySQL引擎1.2.1 innodb和myisam的区别,以及各自的优点1.2.2 事务,数据隔离级别1.2.3 相关数据结构1.2 MySQL索引1.3 MySQL缓存1.4 分布式1.4.1 主键唯一1.4.2 MVCC2.Java基础2.1 Java类加载过程2.1.2 双亲委派模型2.2 常见方法Objecta...
2019-09-18 15:55:10
176
原创 为什么Synchronized在老版本的JDK中效率低
文章目录1.Synchronized和ReentrantLock相似点2.效率低的原因2.1.用户态到内核态几种情况2.1.1:系统调度2.1.2:异常2.1.3:外围设备的终端2.2.用户态到内核态的过程3.解决办法1.Synchronized和ReentrantLock相似点提到Synchronized不得不提和ReentrantLock二者相似点:1.1:加锁方式同步,阻塞式同步。...
2019-09-10 21:14:39
1546
1
原创 浏览器输入一个URL,发送一个HTTP请求都发送了什么
文章目录1.TCP/IP模型2.各层常用协议3.HTTP过程3.1.DNS域名解析3.2.TCP链接3.3.HTTP请求报文3.4.服务器端响应http请求,浏览器得到html代码3.5.获取HTML代码3.6.渲染页面4.总结1.TCP/IP模型说计算机网络必须得提一下,TCP/IP模型的4层结构。应用层传输层网络层网络接口层2.各层常用协议应用层:...
2019-08-28 12:01:28
1671
原创 Java设计模式——策略模式
实习做的项目,有那么几个功能举要疯狂的使用if-else来进行判断,之前老哥用了工厂模式进行解决。翻看阿里的Java手册发现推荐使用…卫语句,策略模式或状态模式。卫语句和if-else相比区别不大,无非就是可读性更强了一些,但是维护难度一点没降低,可扩展性一点没提高。一旦需求更改,需要修改所有使用更改需求的if-else代码块。不变还好一变想想都闹心。所以还是看看这个策略模式。策略模式0....
2019-08-06 17:28:19
150
原创 List中循环插入Map,结果Map值都一样
实习中,项目需要向前端传一个json格式是一个List,里面都是Map踩了一个坑…List里面的Map都成一样的了…踩坑代码:List<VisitInfoBean> childInfoList = getChildInfoList(keyNode, date);HashMap<String, Object> chirldMap = new HashMap<&...
2019-07-31 18:08:45
1683
1
原创 Java设计模式——生产者消费者模式
生产这消费者,自己还是dubbo中听说的。但这其实是一个经典的线程问题。者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者消费数据。阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。我这里以wait和notifyAll方法实现。写的比较简单直接代码了:package com.storage;impor...
2019-06-25 14:12:02
240
转载 mac,idea常用快捷键大全
改用mac,idea之后可以说的非常爽。但快捷键和之前用windows,eclipse发生了巨大改变,为了方便自己转载一篇快捷键【常规】Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+...
2019-06-21 14:31:01
2633
1
原创 散列(hash)算法——Java表示
Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。百度百科给出的散列算法的解释如上,个人理解散列算法就是给个输入通过散列算法后输出得道固定长度的输出。输入—>散列算法—>输出(固定长度)第一个接触的散列算法应该是MD5吧…学JavaWeb的时候做密码加密。虽然现在已经不推荐使用...
2019-06-12 19:29:45
3382
原创 Java类加载过程
一个.java文件想要运行,那他就得先便衣成.class字节码文件,然后才能在JVM上运行。这种机制遭就了Java的一次编译多处运行的跨平台能力。(JVM版本不一致不一定能跑)。编译,即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。运行,则是把编译声称的.class文件交给Java虚拟机(JVM)执行。而我们所说的类加载过程即是指JVM虚拟机把....
2019-06-08 19:17:52
497
转载 剑指Offer——Java实现(4)
16.合并两个排列的链表题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { //新建一个头节点,用来存合并的链表。 ListNode he...
2019-06-07 23:59:26
113
转载 剑指Offer——Java实现(3)
12.数值的整数次方题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路1:n的A次幂,3种情况A > 0,正常算A = 0,永远都是1A < 0,正常算的倒数public class Solution { public double Power(double base, int expon...
2019-06-04 23:05:48
140
原创 Java设计模式——代理模式
0.代理模式简介已经介绍了单例模式和工厂模式,本片介绍下代理模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。代理模式也挺常用的,Spring里面AOP的主要实现原理就是动态代理。顺便提一下设计模式不是一种技术,这是一种方法,解决特定问题的方法。1.代理模式的优点没优点用它干啥。。。1)保护真实对象:交给代理对...
2019-06-03 22:59:59
143
原创 Java设计模式——工厂模式
0.简介我理解的工厂模式就是一种封装和继承…平时经常用,连数据库等,意想不到的你就用了,Spring里面遍地的工厂模式。工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() ...
2019-06-02 21:56:04
143
转载 剑指Offer——Java实现(2)
6.旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路1:暴力A…这多少优化点,最原始就再用个临时变量存一下然后返回…import ja...
2019-06-01 12:31:50
125
原创 Java设计模式——单例设计模式
单例设计模式是设计模式中常谈的一种设计模式0.简介百度百科对单例模式是这么说的单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。1.优点在java语言中,单例带来了两大好处:1.对于频繁使用的对象,可以省略创建对象所花费的时间。2.由于new操作的次数减少,因而对...
2019-05-30 14:51:41
111
转载 剑指Offer——Java实现
1.二维数组中的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路1:暴力A,不就二维数组吗,一行一行找就完了,而且还有序每行二分法。public class Solution { public boolean Find(i...
2019-05-29 23:20:06
186
原创 Java反射附Java中文API
Spring框架AOP是基于动态代理实现的,而动态代理的基础就是Java的反射。1.概述Java反射机制总的来说就是在某一个对于任意一个类在运行时,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;反射就是把java类中的各种成分映射成一个个的Java对象。用的方法就是Class对象。借个图关于Class类的相关可以查看官方API,附下载地址。链...
2019-05-23 09:28:00
195
原创 普元科技笔试题
…可以说是没什么意思…直接看题吧…1、计算一个航班的飞行时间,通过键盘输入两个数,分别代表航班起飞时间和到达时间(不用考虑跨天的情况)。比如一个航班起飞是7:30,到达是14:20,则输入730和1420,通过程序,则要求输出内容为:“航班飞行时间为6小时50分钟”。import java.util.Scanner;//加减乘除直接搞定...public class test1 { ...
2019-05-22 19:25:51
1068
原创 第一个分布式项目总结(5)——Nginx与负载均衡
Nginx…怎么看怎么奇怪的单词…没办法它是俄罗斯人整出来的。0.Nginx概述Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。概念性的就不多...
2019-05-20 20:07:36
395
原创 Java基础,clone对象的复制
有一个对象 A,在某一时刻 A 中已经包含了一些值,此时可又需要一个对象B,对象B的值是A的值…这种情况最简单的办法就是复制引用。 String A = new String("123"); String B = A; //对象B指向对象A System.out.print(System.identityHashCode(A)+","); System.out.println(Syste...
2019-05-18 16:36:09
162
原创 腾讯Java一面,面经
应该是腾讯视频的部门。话说鹅厂用Java吗…感觉好像不多吧…1.自我介绍2.介绍下SSM3.SpringMVC介绍下4.Moudel是什么5.项目6.redis缓存和session服务都单独说一下。7.redis数据结构8.redis淘汰机制如果内存满了,还想写入数据怎么办惰性淘汰,如果不存在惰性数据怎么办…9.redis作为session存储如果有人恶意攻击,导致redi...
2019-05-16 14:02:27
1037
原创 Java集合,Map
已经介绍过List,Set,本篇说下Java集合中的第三个兄弟,Map。0.Map简介在 java.util包中。Map 提供了一个更通用的元素存储方法。Map 集合类用于存储键值对(Key-Value),其中每个键映射到一个值。本质是两个集合的映射关系,其未实现Collection和Iterable接口,所以不能for-each遍历。public interface Map<K,...
2019-05-15 21:40:35
113
原创 Java集合,Set
上篇博客主要介绍了List,这篇主要介绍Set。0.Set简介set是一种无序、可重复的数据容器,与List一样继承与Collection接口。所以set也是一个接口,想用它需要实现类,本篇主要介绍的是HashSet和TreeSet。0.HashSet与TreeSetHashSet :保存的数据是无序的,TreeSet:保存的数据是有序的...
2019-05-14 21:07:36
76
原创 Java集合,List
Java中集合是一个为集合提供了单独的类,在开发中经常使用,并且面试中也经常在这里设置问题。本篇就总体上说下Java中的集合和从JDK源码上分析下List这种集合。0.集合的分类Java中在java.util包中为集合提供了List,Set,Map等Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。我们来...
2019-05-13 21:25:34
540
原创 第一个分布式项目总结(4)——Solr
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。在本项目中的应用:索引库。0.总述:老规矩先看架构图。即如图所示搜索服务的实现。我们先看下Solr的应用效果,即搜索服务的页面表现。在搜索服务中,查询数学相关的课程。即可显示所有“数学”相关课程,并返回总数。1.为什么使用solr:1.减轻MySQL数据库压力,MySQL也可以实现搜索功能,可以通过"lik...
2019-05-12 19:46:56
357
原创 Java基础,String,StringBuffer, StringBuilder
这三兄弟,可以说是面试没事就问…这里我们看看JDK源码从而分析下。1.String//JDK源码:public final class Stringprivate final char value[];咱们先看看String这个类,final修饰,不可重写,不可改变(常量),底层是char[],可以看做是char的包装类。都不可变了,当然线程安全。public class tes...
2019-05-11 10:28:55
114
转载 数据结构与算法Java实现(6)——树(下)
AVL树AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。上面的两张图片,左边的是AVL树,它的任何节点的两个子树的高度差别都<=1;而右边的不是AVL树,因为7的两颗子树的高度相差为2(以2为根节点的树的高度是3,而以8为根节点的树的高度是1)。关于AVL树点击此处。红黑树Java中TreeMap的底层实现就是黑红树。1.性质性质1...
2019-05-10 23:05:09
134
原创 Java基础,Object类
基本描述(1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入;(2)Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。可以使用类型为Object的变量指向任意类型的对象即一个类如果不指名继承与那个类那么他就是Object的子类。Object类是爸爸hhh。...
2019-05-10 21:08:48
231
原创 第一个分布式项目总结(3)——单点登录
昨天电话面试的时候和面试官聊项目的时候聊的比较多就是单点登录我是怎么实现的,这篇博客便对此做点单登录系统进行总结。SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。就比如在我这个系统中,由于各个...
2019-05-09 19:42:52
471
转载 数据结构与算法Java实现(5)——树(上)
安装排序算法应该是堆排序,但理解堆排序首先要理解堆,而理解堆便需要理解树。而树内容较多,是一种独特的数据结构,所以单开一片文章记录树。树相比于链表,数组。树,是非线性结构的典型例子,不再是一对一,而变成了一对多,即一个根节点有多个子节点。如图所示一些关于树的基本概念1.图中的结构就像一棵倒过来的树,最顶部的节点A就是根节点 (root 节点),每棵树至多只有一个根节点。2.根节点生出...
2019-05-09 09:45:51
199
转载 数据结构与算法Java实现(4)——插入排序
插入排序,是一种稳定的,内部排序方法(快速排序是稳定的)时间复杂度: 最差情况O( n2)最好情况O(n)空间复杂度: O(l)原理通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。代码实现/** * 插入排序 * @author scz * */...
2019-05-08 13:23:39
99
原创 第一个分布式项目总结(2)——Redis
作为一个处理高并发访问的项目,就如《大型网站技术架构 核心原理与案例分析》所说,加缓存是首选。而使用NoSQL数据库的中间件,有(MongoDB,Memcache,Redis。)在本项目中使用便是Redis介绍下RedisRedis是款开源的内存高速缓存数据库,由C语言编写(部署的时候需要gcc环境),本质上是一个K-V类型的内存数据库,具有非常出色的性能,每秒可以处理10w次读写操作。相比...
2019-05-08 11:31:20
195
转载 数据结构与算法Java实现(3)——归并排序
结束了快速排序学习之后,对其分段排序的思想的延续便是归并排序。归并排序是一种稳定的排序算法。时间复杂度:O(nlogn) ,空间复杂度:O(n),是一种典型的空间换时间的算法。原理: 归并排序将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是归并。盗用一张图:代码实现import java.util.Arrays;...
2019-05-07 22:55:36
112
原创 第一个分布式项目总结(1)——dubbo的那些事
自从面试被问了dubbo原理之后…。以加深知识深度为目标,总结项目,加深认识。项目介绍:宜速教务,看名字就知道这一个教务系统。时间的话,从今年寒假末期就开始做,本人第一个应用了分布式的项目。前端:Bootstrap模板…有点小丑。后端:SOA架构,SSM框架、。项目背景:大一选课时候就很愁…能不能抢到课极大取决于页面能不能访问,每到选课时候404总是那么亲切,有限的时间,巨大的数据量,...
2019-05-07 21:49:35
1806
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人