自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (3)
  • 收藏
  • 关注

原创 网易面经总结

面经整理如下:1. 线程池的ThreadPoolExecutor的主要参数有哪些,详细介绍了一下任务队列2. 线程创建的几种方式以及区别3. HashMap的底层实现,以及1.7和1.8之间的区别4. 线程安全的容器有哪些5. ConcurrentHashMap的底层实现原理,以及1.8是如何操作的6. 异常的继承结构,以及Runtime异常和checked异常的区别,Ru...

2018-08-23 10:26:31 323

原创 线程的几种状态

1. 线程的几种状态初始状态:是指线程刚刚创建,尚未启动,还没有调start()方法 运行状态:分为就绪和运行中状态 就绪:线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权,此时处于就绪状态(ready)。 运行中:就绪状态的线程在获得cpu 时间片后变为运行中状态(runnin...

2018-08-15 22:24:57 3797

原创 网络遗漏知识点整理

网络遗漏知识点整理IP层的主要功能分组转发和路由选择路由器分组转发的主要流程从数据报的首部提取目的主机的 IP 地址 D,得到目的网络地址 N。 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付; 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给表中所指明的下一跳路由器; 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;...

2018-08-12 21:26:28 368

原创 操作系统知识点整理

操作系统1: 操作系统基本特征并发:并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。 共享:共享是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。 互斥共享的资源称为临界资源,例如打印机等,在同一时间只允许一个进程访问,需要用同步机制来实现对临界资源的访问。 虚拟:虚拟技术把一个物理实体转换为多个逻辑实体。主要有两种虚拟技术...

2018-08-01 23:04:10 609

原创 Leetcode——最长上升子序列

题目描述:给定一个无序的整数数组,找到其中最长上升子序列的长度。解题思路:以一个例子为例:2 3 1 5 4 7 9 对于2,最长递增子序列为1 对于3,最长递增子序列为2 而对于1,最长递增子序列为2,3,但该处因为相当于和前面的断开了,所以应该定义此处的最长递增子序列为1 对于5,如果和前面的1连接,最长递增子序列为1,5,长度为2;如果和前面的3连接,最长递增子序列为2,3,...

2018-08-01 23:01:10 614

原创 leetcode——排列

题目描述:给定一个没有重复数字的序列,返回其所有可能的全排列。解题思路:典型的回溯法解题思想 给定一个列表,将数组中的数字加入该列表中,一旦列表的大小等于数组的长度时,保存该列表作为数组的一个排列 同时添加过的数字要给一个标签,说明已加入该列表 当列表大小等于数组长度时,保存的同时,需要回退,同时将该数字的标志置为未访问 class Solution { pub...

2018-07-25 23:35:02 127

原创 Leetcode——打家劫舍 II

题目描述:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。解题思路:所有的房屋围成一圈,所以所有房子头...

2018-07-24 23:43:59 194

原创 Leetcode——字符构成最多的字符串

题目描述:在计算机界中,我们总是追求用有限的资源获取最大的收益。现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。解题思路:这相当于是一个多维费用背包,也就是不仅要考虑背包所能容纳的重量,还要考虑背包的体积 ...

2018-07-22 21:41:47 824

原创 多重背包

多重背包对于每件物品,不是放或不放的问题,同时每件物品也不是可以无限次的使用,而是给定一个序列,规定每个物品的件数,所以背包中的物品除了重量的约束外,还有物品件数的约束 思路一:将多重背包转换为0-1背包。比如,有2件价值为5,重量为2的同一物品,我们就可以分为物品a和物品b,a和b的价值都为5,重量都为2,但我们把它们视作不同的物品。 public class duochon...

2018-07-22 16:22:52 377

原创 Leetcode——组合总和

用深信服的一个问题来引出此题:题目描述: 给定一堆题目所对应的分值,请你从中挑选一些题目,使其分值正好是一百分解题思路:将分值一个个加到一个列表中,一旦找到就输出列表 否则将所有元素加入列表后,将其回溯,加入下一个元素 可以在加入元素大于所要的100以后,就回溯import java.util.List;import java.util.ArrayList;/*给定一堆题目...

2018-07-22 11:24:15 788

原创 完全背包问题

完全背包完全背包和01背包的区别在于完全背包每一件物品的数量都有无限个,而01背包每件物品数量只有1个状态转移方程:dp[i][j] = max(dp[i-1][j],dp[i][j-a[i]]+v[i])or dp[j] = max(dp[j],dp[j-a[i]]+v[i])对于第i件物品有放或不放两种情况,而放的情况里又分为放1件、2件、......v/c[i]件...

2018-07-21 23:08:57 126

原创 Leetcode——零钱兑换

题目描述:给一些面额的硬币,要求用这些硬币来组成给定面额的钱数,并且使得硬币数量最少。硬币可以重复使用。解题思路:把该题目抽象成一个背包问题 物品:硬币 物品大小:面额 物品价值:数量 因为硬币可以重复使用,因此这是一个完全背包问题。 class Solution { public int coinChange(int[] coins, int amount) {...

2018-07-21 10:57:44 984

原创 Leetcode——单词拆分

题目描述:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 字典中的单词没有使用次数的限制,因此这是一个完全背包问题。 class Solution { public boolean wordBreak(String s, List<String> wordDict) { ...

2018-07-21 10:56:37 657

原创 Leetcode——分割等和

题目描述:给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。解题思路: 可以看成一个背包大小为 sum/2 的 0-1 背包问题。 class Solution { public boolean canPartition(int[] nums) { int sum = sum(nums); if(su...

2018-07-19 23:47:07 1201

原创 剑指offer——删除重复的节点

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5解题思路1:首先创建一个头指针,同时有一个指针指向头结点,头结点向后判断是否有和它值一样的结点,一样的话找到相同值的结点的最后一个,然后用头指针指向该节点的下一个若不相同...

2018-07-12 23:14:03 444

原创 背包问题

01背包问题描述:有N件物品和一个容量为V 的背包。第i件物品的费用为c[i],价值为w[i]。求解将哪些物品放入背包可以使价值总和最大。01背包的特点是物品不能拆分,每种物品仅有一件,只能选择放或者不放动态规划问题最好先写下子问题的定义状态以及方程,子问题定义为:dp[i][j]表示前i件物品放入容量为j的背包中所能获得的最大价值。状态方程: 采用二维数组的方式来解决此问题,时间复杂度,空间复杂...

2018-07-08 16:40:55 247

原创 HashMap相关问题

1:HashMap和ConcurrentHashMap之间的区别:JDK 1.7的HashMap和ConcurrentHashMap之间的区别见讲义JDK1.8HashMap和ConcurrentHashMap之间的区别HashMap:Java8 对 HashMap 进行了一些修改,最大的不同就是利用了红黑树,所以其由 数组+链表+红黑树 组成。Java7HashMap查找的时候,根据hash值能...

2018-07-08 16:12:24 155

原创 Lintcode——寻找峰值

题目描述:你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的A[0] < A[1] 并且 A[n - 2] > A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。解题思路:首先能确定头部第二个元素大于第一个元素,并且尾部倒数第二个元素大于最后一个元素采用二分查找的思路,如果m...

2018-07-02 23:01:18 285

原创 剑指offer——重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:前序遍历的第一个结点在中序遍历中,正好分成对应的左右两个部分,对应左子树和右子树对于左子树和右子树采用和1同样的方法明显这是一个递归,最终能够构...

2018-07-02 21:04:09 397

原创 Leetcode——通过删除字母匹配到字典里最长单词

题目描述:给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。解题思路:先取出最长的字符串,并且字典顺序最小的字符串对于列表中的字符串,一个一个的判断其和目标串之间是否满足该关系:目标串删除部分字符可以得到该串class Solution { publ...

2018-07-02 20:27:16 1425

原创 JVM性能调优

JVM调优无监控不调优:如果没有一个评价系统性能的手段,则调优没有意义,因为你改了参数以后测试不出来Java虚拟机调优主要涉及堆内存的调整和垃圾收集的调整Java内存区域划分方法区:在Java8以后叫做永久区,存放静态变量,class文件JVM采用垃圾的收集算法分代算法新生代:对象生存时间一般都比较短,存活对象少,所以可以使用复制算法老年代:垃圾少 一般使用标记整理算法JVM参数-:标准参数,所有...

2018-07-01 22:39:45 1671 4

原创 Leetcode——验证回文字符串

题目描述:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。解题思路:使用双指针,一个指向头,一个指向尾,如果两者不相同了,则可以将尾部的往前挪一个,或者首部的往后挪一个,判断这两种情况这两种已经相当于删除了一个字符,如果不是回文字符串,说明删除一个字符满足不了要求class Solution { public boolean validPalindrome(String...

2018-06-28 23:51:12 1238

原创 设计模式——装饰器模式和桥接模式

装饰器模式(Decorator Pattern)概念:装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委拖被装饰者的行为之前或之后加上自己的行为,已达到特定的目的组成:装饰器模式由组件和装饰者组成。抽象组件(Component):需要装饰的抽象对象。 具体组件(ConcreteComponent):是我们需要装饰的对象 抽象装饰类(Decorator):内含指向抽象组...

2018-06-28 21:50:34 2635

原创 设计模式——适配器模式

适配器模式:定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。主要分为三类:类适配器模式、对象的适配器模式、接口的适配器模式。使用场景:1 系统需要使用现有的类,而这些类的接口不符合系统的需要。 2 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。 3 需要...

2018-06-28 21:22:58 594

原创 Spring事务管理

Spring事务Java EE应用的传统事务有两种策略:全局事务和局部事务。全局事务由应用服务器管理,需要底层服务器的JTA支持。局部事务和底层所采用的持久化技术有关,当采用JDBC持久化技术时,需要使用Connection对象来操作事务。全局事务可以跨多个事务性资源(比如说多个数据库和消息队列);使用局部事务,应用服务器不需要参与事务管理,因此不能保证多个事务性资源的事务正确性。全局事务和局部事...

2018-06-26 23:37:57 706

原创 代理模式详解

代理模式总结代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法 静态代理静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者...

2018-06-24 23:45:32 1121

原创 Spring Ioc容器

Spring演进Spring框架所倡导的基于POJO(Plain Old Java Object,简单Java对象)的轻量级开发理念,就是从实际出发,立足于最基础的POJO(就好像我们的地球)。为了能够让这些基础的POJO构建出健壮而强大的应用,Spring框架就好像那包裹地球的大气层一样,为构筑应用的POJO提供了各种服务,进而创造了一套适宜用POJO进行轻量级开发的环境。整个Spring框架构...

2018-06-21 22:42:15 163

原创 剑指offer——滑动窗口的最大值

题目描述:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5...

2018-06-18 23:39:53 651

原创 剑指offer——n个骰子的点数

题目描述:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能出现的值出现的概率。解题思路:将n个骰子分为两堆,第一堆只有一个,剩下一堆有n-1个然后再计算n-1个骰子的点数之和,过程和第一步一致这显然是一种递归的解法总共n个骰子,有6~n种排列组合,骰子点数之和在n到6n之间,所以可以用一个5n+1的数组来存放出现点数之和的次数,将和为s的点数存放在数组的第s-n个元素...

2018-06-18 20:11:49 386

原创 解密ThreadLocal

ThreadLocalThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。正是因为这是一个线程的局部变量,也就是说,只有在当前线程内部可以访问,因此是线程安全的,但是要注意,如果在应用上为每一个线程分配了相同的对象实例,那么ThreadLocal也不能保证线程安全。initialValue函数init...

2018-06-17 22:00:48 623

原创 实现线程的顺序执行

之前,看到过一个题目,是关于如何使得线程顺序执行的当时,我的第一个想法就是使用join方法,在t3线程内部调用t2线程的join()方法,然后在t2内部继续调用t1线程的join方法来实现线程的顺序执行,话不多说,手写代码来测试结果:/*实现三个线程的顺序执行 * coded by Jerome */public class ThreadRun { public static void ...

2018-06-16 21:10:23 642 1

原创 剑指offer——圆圈中最后剩下的数字

题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去......

2018-06-14 23:34:52 216

原创 剑指offer——扑克牌中的顺子

题目描述:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为...

2018-06-14 22:51:27 249

原创 MySQL学习笔记——查询性能优化

查询性能优化查询性能优化主要从查询优化、索引优化、库表结构优化三个方面出发慢查询基础:优化数据访问查询性能低下最根本的原因就是访问的数据太多,大部分性能低下的查询都可以通过减少访问的数据量进行优化。一般有效的分析步骤如下:确认应用程序是否在检索大量超过需要的数据。这通常意味着访问了太多的行,也有可能是访问了太多的列。确认MySQL服务器层是否在分析大量超过需要的数据行。是否向数据库请求了不需要的数...

2018-06-14 21:50:10 221

原创 MySQL学习笔记——索引的理解

索引的概念什么叫索引索引也称作键,是存储引擎用于快速找到记录的一种数据结构。索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。B树和B+树之间的区别B树的数据结构: B+树和B树的区别1、有n棵子树的结点中含有n-1个关键字(与B树相同,MySQL中的B+树索引采用这种); (此处有争议,另一种说法是,B+树...

2018-06-14 21:48:40 278

原创 ConcurrentLinkedQueue详解

一、 前言常用的并发队列有阻塞队列和非阻塞队列,前者使用锁实现,后者则使用CAS非阻塞算法实现,使用非阻塞队列一般性能比较好,下面就看看常用的非阻塞ConcurrentLinkedQueue是如何使用CAS实现的。ConcurrentLinkedQueue是无界队列。对于使用锁实现阻塞队列的也分两种情况,一种是使用一把锁,例如ArrayBlockingQueue;还有一种是LinkedBlocki...

2018-06-13 23:49:09 1272 1

原创 MySQL学习笔记一事务和存储引擎

锁通常分为两种锁,一是共享锁(读锁),一种是排他锁(写锁)。读锁是共享的,或者说是互相不阻塞的。多个客户在同一时刻可以同时读取同一个资源而互不干扰。写锁则是排他的,也就是说写锁会阻塞其他的读锁和写锁。MySQL中主要有两种锁:表锁(table lock)和行级锁(row lock)死锁的概念:多个线程因竞争系统资源或相互通信而处于永久阻塞状态,若无外力作用,这些线程都将无法继续向前推进。这些线程中...

2018-06-13 22:56:23 240

原创 剑指offer——和为s的连续正数序列

题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!解题思路:首先确定一个最小数small为1,最...

2018-06-08 23:12:41 160

原创 生产者-消费者模式

生产者-消费者模式生产者-消费者模式是一种经典的多线程设计模式,它为多线程之间的协作提供了良好的解决方案。利用共享内存缓冲区来进行通信。它有以下两个好处:生产者和消费者之间不直接进行通讯,而是通过共享内存缓冲区,从而将生产者和消费者进行了解耦由于共享内存缓冲区的存在,允许生产者和消费者在执行速度上存在时间差异,平衡了生产者和消费者的处理能力实现方式在Java中一共有四种方法支持同步,其中前三个是同...

2018-06-07 20:52:06 151

原创 详解CAS技术

无锁实现并发的几种方式:1. 锁2. CAS3. ThreadLocal变量;可重入性代码锁是一种悲观的策略,锁认为每次临界区的操作都会产生冲突,所以当有多个线程需要同时访问临界区资源,锁会阻塞线程执行无锁是一种乐观的策略,它假设所有对资源的访问都是没有冲突的,因此所有线程都可以不用阻塞的持续执行,一旦遇到冲突,无锁采用CAS(Compare And Swap)来鉴别冲突,一旦检测到冲突,则...

2018-06-05 22:53:56 6010

选课系统代码

在线选课系统的毕业设计,功能齐全,绝对能够使用,是校级优秀论毕业设计。

2016-10-08

选课系统的实现与应用

在线选课系统的毕业论文,超级详细,绝对有用,是校级优秀论文。

2016-10-08

web在线考务与成绩处理系统

利用c#开发的在线考务与成绩处理系统,是一篇毕业论文,绝对值得参考,被评为优秀毕业论文

2016-08-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除