自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

转载 Java并发编程的艺术(一)

看《java并发编程的艺术》这本书,想着看的时候做个简单的总结,方便以后直接看重点。一.并发编程的挑战1.上下文切换Cpu时间片通过给每个线程分配CPU时间片来实现多线程机制,时间片一般是几十毫秒。任务从保存到再加载的过程就是一次上下文切换。如何减少上下文切换?无锁并发编程:多线程处理数据时,避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段...

2019-09-04 17:22:00 109

转载 数组与集合

数组与集合都是用来存储对象的容器,前者性质单一,方便易用,后者类型安全,功能强大,且两者之间必然有互相转换的方式。毕竟它们的性格迥异,在转换过程中,如果不注意转换背后的实现方式,很容易产生意料之外的问题。数组转集合和集合转数姐。在数组转集合的过程中,注意是否使用了视图方式直接返回数组中的数据。我们以 Arrays.asList() 为例,它把数组转换成集合时,不能使用其修改集合相关的方法...

2019-08-12 10:17:00 118

转载 Trie树(前缀树)

Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 基本性质1,根节点不包含字符,除根节点意...

2019-03-15 11:21:00 139

转载 MySql索引原理分析

面试问:数据库中最常见的慢查询优化方式是什么? 同学A:加索引。问:为什么加索引能优化慢查询?同学A:...不知道同学B:因为索引其实就是一种优化查询的数据结构,比如Mysql中的索引是用B+树实现的,而B+树就是一种数据结构,可以优化查询速度,可以利用索引快速查找数据,所以能优化查询。问:你知道哪些数据结构可以提高查询速度?(听到这个问题就感觉此处有坑...)同学B:哈希表...

2019-03-15 11:13:00 129

转载 @responseBody注解的使用

1、  @responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML  数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。2、    @Reque...

2019-02-24 19:44:00 89

转载 java基础知识

以下所有问题的回答是本人总结的回答要点,并没有全部详细写出。1.java语言有哪些优点?面向对象跨平台(一次编译,到处运行)提供很多内置类库去除了C++中难以理解的特性(指针,虚函数)2.java与C/C++的异同java是解释型语言,C++是编译型语言java是纯面向对象,C++是面向过程和面向对象java没有指针、不支持多继承jav...

2019-02-22 21:54:00 77

转载 tomcat中war 和 war exploded的区别

war和war exploded的区别(转载)在使用idea开发项目的时候,部署Tomcat的时候通常会出现下边的情况: 是选择war还是war exploded这里首先看一下他们两个的区别:war模式:将web工程以war包的形式上传到服务器 war exploed模式:将web工程以当前文件夹的位置关系上传到服务器war模式这种可以...

2019-02-21 10:29:00 115

转载 maven的概念模型及maven坐标

1.概念模型项目对象模型:一个maven工程有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。依赖管理系统:通过maven的依赖管理对项目所依赖的jar包进行统一管理。一个项目生命周期:项目构建的过程为一个项目的生命周期。一组标准集合:为整个项目管理过程定义一组标准。插件:maven管理项目生命周期...

2019-02-19 20:20:00 151

转载 maven命令

在cmd的状态下测试1.compile作用:将src/main/java 下的java文件编程成class文件输出到target目录打开项目所在的位置,打开cmd窗口,输入mvn compile查看项目target目录,生成了class文件,编译完成:2.testcmd执行mvn test执行src/test/java 下单元测试类,下图为测试结果,一...

2019-02-19 19:28:00 93

转载 Maven项目工程目录

maven工程目录规范: src/main/java 存放项目的.java文件 src/main/resources 存放项目的资源文件,如spring、hibernate配置文件src/test/java 存放所有单元测试.java文件src/test/resources 测试资源文件target 项目输出位置,编译后的class文件会...

2019-02-19 16:39:00 116

转载 maven工程运行演示

通过maven提供的命令来运行maven工程,体会maven构建工程的优点。(1)运行web工程 进入maven工程目录(当前目录有pom.xml),运行tomcat:run命令可能出现的问题:成功部署后在浏览器输入地址查看时出现错误org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException解决办...

2019-02-19 09:36:00 185

转载 Maven下载安装

1.Maven安装下载:从该网站http://maven.apache.org/download.cgi 下载 maven3.3.9版本解压: 将maven解压到不含有中文和空格的目录中: bin目录:mvn.bat(run方式运行) mvnDebug.bat(debug方式运行) boot目录:maven...

2019-02-18 20:50:00 73

转载 Maven介绍

1.什么是Maven? Maven翻译为“专家”,“内行”。maven是Apache下纯java开发的开源项目,是一个项目管理工具,使用maven对java项目进行构建、依赖管理。2.什么是项目构建? 项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程。(1)传统项目构建过程传统使用eclipse构建项目过程如下:...

2019-02-18 19:44:00 97

转载 创建简单web项目

Intellij Idea直接安装(可根据需要选择自己设置的安装目录),jdk使用1.6/1.7/1.8都可以,主要是配置好系统环境变量,tomcat7上tomcat的官网下载压缩包解压即可。一、创建简单web项目1、创建一个web projectFile -> new Project ->选择project sdk 为1.6(如果没有sdk的同学请先配置)-&g...

2019-02-10 21:34:00 441

转载 java虚拟机之内存分配

Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。JDK1.8之前的堆内存示意图:从上图可以看出堆内存分为新生代、老年代和永久代。新生代又被进一步分为:Eden 区+Survivor1 区+Survivor2 区。值得注意的是,在 JDK 1.8中移除整个永久代,取而代之的是一个叫元空间(...

2019-02-04 11:31:00 128

转载 Java虚拟机之内存模型

一.java并发基础在并发编程中存在两个关键问题①线程之间如何通信 ②线程之间如何同步。通信通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消...

2019-02-01 12:27:00 114

转载 java虚拟机之垃圾回收机制

一.需要回收的内存区域 程序计数器、虚拟机栈、本地方法栈 3 个区域随线程生灭(因为是线程私有),栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。而 Java 堆和方法区则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期才知道那些对象会创建,这部分内存的分配和回收都是动态的,垃圾回收期...

2019-01-31 21:12:00 171

转载 java虚拟机之JVM体系结构

JVM体系结构:下面重点介绍运行时数据区域模块:(1)java堆(Heap)被所有线程共享的一块内存区域,在虚拟机启动时创建用来存储对象实例可以通过-Xmx和-Xms控制堆的大小OutOfMemoryError异常:当在堆中没有内存完成实例分配,且堆也无法再扩展时。  java堆是垃圾收集器管理的主要区域。java堆还可以细分为:新生代(New...

2019-01-29 17:19:00 103

转载 java虚拟机之JVM生命周期

java生命周期分为以下三部分:启动,运行,消亡。启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安...

2019-01-28 21:25:00 115

转载 删除链表中重复的结点

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路分析:本题可以采用递归的方法,而且要考虑多种情况:(1)链表为空;(2)只有一个结点;(3)当前结点是重复结点;(4)当前结点不是重复结...

2019-01-27 21:20:00 61

转载 链表中环的入口结点

题目描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路分析:1.首先判断链表中是否有环:可以使用两个指针来解决,定义两个指针,一个指针一次走1步,一个指针走2步,如果走的快的指针追上了走的慢的指针,那么链表就包含环;2.找到环的入口:如果有环,那么快慢指针会相遇在一个结点,此时让快的指针指向头指针,快慢指针同时重新移动,当两个再次相遇时便是环的入...

2019-01-22 20:05:00 72

转载 构建乘积数组

题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。思路分析:(1)若没有限制不能用除法,那就可以把数组中的数字连乘,再分别除以对应的数字;(2)有限制不能用除法,则可以把这个乘积分成两部分,一部分是A[i]之前的乘积,一...

2019-01-22 15:35:00 85

转载 数组中重复的数字

题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路分析:(一)利用排序后查找相等的数字,具体分为以下几步:1.判断不合法情况;2.将数组进行排序;...

2019-01-22 13:52:00 83

转载 把字符串转换成整数

题目描述:将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。思路分析:要把字符串转换为整数主要考虑以下几种情况:代码实现:public class Solution { public int StrT...

2019-01-22 11:23:00 136

转载 不用加减乘除做加法

题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路分析:要实现两个数的加法,但不能使用四则运算,考虑位运算,举例说明如下:5=101 ,7=111 实现5+7的二进制运算如下过程:(1)首先进行不进位运算,得到101+111=010,这个不进位的相加运算相当于对各位进行异或;(2)接着进行进位运算得到1010,相当于各位做与操...

2019-01-20 22:11:00 61

转载 求1+2+3+...+n

题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路分析:(一)首先我们知道1+2+3+...+n=n*(n+1)/2=(n^2+n)/2,由于不能使用乘除法,但是有算平方的函数pow,至于除以2我们可以利用位运算右移来达到除以2的效果。(二)在遇到这个问题我们最常规的做法就...

2019-01-20 17:39:00 219

转载 圆圈中最后剩下的数字

题目描述:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。思路分析:(一)这个问题类似于从链表中删除,而且是循环链表,所以可以通过链表来描述,但由于问题中涉及到编号,故还是采用ArrayList来刻画比较好。具体分为以下几步:1.判断不合法情况,即m和n都小于1;2.创建一个大小为n的ArrayLi...

2019-01-20 16:41:00 74

转载 扑克牌顺子

题目描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10位数字本身,A为1,J为11,Q为12,K为13,而大,小王可以看成任意数字。思路分析:本题考察数学建模能力,我们很容易把5张牌看成由5个数字组成的数组,然后把大小王定义为0和其他区分开,能否构成顺子关键看要补缺的数目是否小于等于0的个数,若小于等于,则大小王可以补空,否则构不成顺子。所以主要有以下...

2019-01-18 20:05:00 124

转载 翻转单词顺序列

题目描述:翻转单词顺序列思路分析:将字符串利用空格划分开并存进一个字符串数组然后逆序输出。补充知识:trim()方法去掉一个字符串首尾的空白字符。假设有一个字符串s = " "(3个空格),那么s.trim()后返回的就是""。 代码实现:public class Solution { public String ReverseSentence(St...

2019-01-08 11:05:00 76

转载 左旋转字符串

题目描述:对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。思路分析:这个题很简单,只要利用StringBuffer的一些方法就可以实现截取和拼接。知识点补充:StringBuffer : (1)delete(inta,intb)有两个参数,使用时删除...

2019-01-06 22:32:00 92

转载 和为S的两个数字

题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。思路分析:这个可以利用上一个的双指针的做法,但是不是连续的,所以需要从头和尾开始。看两个的和与S的大小,如果比S大,需要找一个小点的数,尾指针左移,如果比S小,需要找一个大点的数,头指针右移,直到相等为止。举例如下图:代码如下:im...

2019-01-04 21:24:00 68

转载 和为S的连续正数序列

题目描述:找出所有和为S的连续正数序列思路分析:(一)求出连续序列的中间值和长度。 因为是连续正数序列,所以实质上是一个公差为1的等差数列,可以利用等差数列的和来计算。假设长度为n(1)先算出中间值S/n,但要分以下两种情况: 当n为奇数时,序列的中间值正好是序列的平均值; 当n为偶数时,序列的中间两个数的平均值是序列的平均值。(2)并且不用n不用...

2019-01-04 20:22:00 195

转载 数组中只出现一次的数字

题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。举例:{4,2,3,1,1,3}思路分析:(1)先对数组排序为{1,1,2,3,3,4}; (2)遍历一次数组,将array[i]分别与array[i-1]和array[i+1]作比较,若都不相同,则找到只出现一次的值。代码实现:...

2019-01-03 22:02:00 73

转载 平衡二叉树

题目描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路分析:常规的办法我们肯定能想到通过调用深度的函数来递归计算出左右子树的深度,并进行判断是否满足平衡因子小于等于1,也就是如下的方法: public boolean IsBalanced_Solution(TreeNode root) { if(root==null) ret...

2018-12-29 22:02:00 74

转载 两个链表的第一个公共结点

题目描述:输入两个链表,找出它们的第一个公共结点。我的思路:起初看到这个题目我的思路是从其中的一个链表开始,然后依次和第二个链表的进行比较,但这样的话时间复杂度比较大,所以这个方法也只能是比较笨的方法了。再后 来,参考了书上的想法后,大致有以下两种思路:(1)从链表的尾部开始遍历,找到它们最后最后一个相同的结点,但这种想法需要借助栈来实现;(2)比较两个链表的长度,让链表长的...

2018-12-25 22:23:00 88

转载 JAVA语言如何用星号打印出一个近似圆

import java.util.Scanner;public class PrintCircle{private static double r;private static double x;PrintCircle(double inr){r=inr;x=0;}public static void print(){double y=0;

2014-10-24 13:02:30 1669

空空如也

空空如也

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

TA关注的人

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