java
文章平均质量分 71
say_haha
菜鸟
展开
-
JAVA 集合框架
Collection①List保存输入的顺序,而且可以重复的存储相关元素。ArrayList(随机访问)(数组线性表)ArrayList数组线性表的特点为:类似数组的形式进行存储,因此它的随机访问速度极快。ArrayList数组线性表的缺点为:不适合于在线性表中间需要频繁进行插入和删除操作。因为每次插入和删除都需要移动数组中的元素。可以这样理解ArrayList就是基于数组原创 2017-03-20 10:16:31 · 318 阅读 · 0 评论 -
网易秋招内推——等差数列
如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列 输入描述:输入包原创 2017-08-13 15:58:24 · 1349 阅读 · 0 评论 -
最长公共子序列与最长公共子串(Longest Common Subsequence, LCS)
最长公共子序列与最长公共子串 http://www.cnblogs.com/en-heng/p/3963803.html动态规划算法解LCS问题 http://blog.csdn.net/v_JULY_v/article/details/61102691. 问题描述子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串cnblogsbel原创 2017-04-08 23:20:06 · 622 阅读 · 0 评论 -
字符串匹配算法KMP算法
字符串匹配算法方法1 是使用暴力方法方法2 是使用KMP算法import java.util.Scanner;/** * @author xiaohao * @date 创建时间:Jul 29, 2017 4:05:17 PM * @version 1.0 */public class SubstringSearch { public static v原创 2017-07-29 17:01:57 · 398 阅读 · 0 评论 -
最长回文子串manacher算法
最长回文子串子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同,如abba和yyxyy。基础题:给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。https://www.nowcoder.com/practice/df00c27320b24278b9c25f6bb1e2f3b8?tpId=69&&tqId=2967原创 2017-08-08 16:36:39 · 318 阅读 · 0 评论 -
求最大子矩阵的和、求最大子数组的和
有一个正整数和负整数组成的NxN矩阵,请编写代码找出元素总和最大的子矩阵。求一个M*N的矩阵的最大子矩阵和。比如在如下这个矩阵中: 0 -2 -7 0 9 2 -6 2-4 1 -4 1-1 8 0 -2 拥有最大和的子矩阵为: 9 2-4 1-1 8其和为15。思路:因为矩阵肯定是对齐的,所以如原创 2017-08-11 14:16:59 · 1726 阅读 · 0 评论 -
数组分为两部分,使得其和相差最小
【问题】将数组分为两部分,使得两部分的和最接近,返回两部分的差值。例如:int[] array={1,0,1,7,2,4},分为两部分为{1,0,1,2,4},{7},差值为1。参考1:《编程之美》第2.18节,不过问题有所不同,2.18节要求长度为2n的数组分为两个长度为n的数组,使得两部分和最接近。参考2:http://www.tuicool.com/art原创 2017-08-11 17:14:27 · 9911 阅读 · 0 评论 -
Java static 和 final 修饰符
staticstatic可以用来修饰类的成员变量、成员方法和代码块,分别称为静态变量静态方法静态代码块静态变量和静态方法都可以直接通过类名访问 "类名.变量" 或 "类名.方法()",二者不依赖于类的实例,被类的所有实例共享,可以起到节省内存空间的作用。静态代码块,在java虚拟机加载类时,就会被执行。静态变量和实例变量的区别java虚拟原创 2017-07-27 09:56:08 · 183 阅读 · 0 评论 -
java抽象类和接口
抽象类和接口共同点都包含有抽象方法;都不能被实例化;区别 项目 抽象类 接口 关键字 abstract class 类名称{ } interface 接口名{ } 结构组成 抽象方法,普通方法,全局变量、全局常量、属性、构造方法 抽象方法、全局常量 权限 可以使用各种权限 只能用public 子类 extends继承抽象类 implem原创 2017-08-16 11:24:26 · 212 阅读 · 0 评论 -
字符串转整型与整型转字符串
面试中被问到了这个问题,当时答得不太好,没有考虑全面,回来总结一下,如有遗漏,欢迎指正。知道C语言中有2个函数atoi()和 itoa(),但对具体实现不是很清楚,现在自己总结实现一下:字符串转整型这个情况稍微复杂一些,要考虑全面字符串开始有空格,要先判断过滤‘ 123’存在符号'+'和'-'要判断存在小数点,也就是'123.45'转为整型是123字符串超过整型int原创 2017-04-25 12:00:01 · 3071 阅读 · 0 评论 -
值传递与引用传递
引用传递的本质就是别名。而这个别名是存放在栈内存中的,一块堆内存可以被多个栈内存所指向。public class Person { String name; int age; public void info(){ System.out.println("name="+name+",age="+age); }}public class TestDemo { public s原创 2017-08-30 18:04:58 · 302 阅读 · 0 评论 -
Java 数组和字符串的转换--不能通过toString方法
java数组->字符串java里,所有的类,不管是java库里面的类,或者是你自己创建的类,全部是从object这个类继承的。object里有一个方法就是toString(),那么所有的类创建的时候,都有一个toString的方法。 这个方法是干什么的呢? 首先我们得了解,java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。O原创 2017-04-22 18:45:46 · 821 阅读 · 0 评论 -
深入理解Java HashMap(JDK1.8)
摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介原创 2017-09-02 20:21:55 · 440 阅读 · 0 评论 -
synchronized与Lock
既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。一.synchronized的缺陷1、等待锁不可中断如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其原创 2017-09-11 17:24:38 · 373 阅读 · 0 评论 -
Java虚拟机的体系结构和内存模型
jvm内存结构方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。每个线程都有一个独立的栈和程序计数器。主要关注内存结构,以及各自存储什么内容。Java堆(Heap),是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的原创 2017-09-01 15:46:14 · 321 阅读 · 0 评论 -
java 类加载机制
类的生命周期java程序使用某个类时,必须按照以下顺序执行:(1)加载:查找并加载类的二进制数据;(2)连接:包括验证、准备和解析类的二进制;验证:确保加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转为直接引用(3)初始化:给类的静态变量赋初始值类的加载什么是类的加载?类的加载指的是将类的.cl原创 2017-08-14 17:47:47 · 453 阅读 · 0 评论 -
java 多态
一、什么是多态指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)。多态性是对象多种表现形式的体现。比如我们按下 F1 键这个动作:如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows原创 2017-08-31 16:21:56 · 304 阅读 · 0 评论 -
HashMap、Hashtable与ConcurrentHashMap
区别HashMapHashtableConcurrentHashMap安全性非线程安全线程安全线程安全性能异步处理,性能高同步处理,性能校低适合高并发null操作key和value允许存放null都不允许null都不允许nullConcurrentHa原创 2017-09-03 17:47:40 · 363 阅读 · 0 评论 -
JAVA集合--ArrayList实现原理
目录: 一、 ArrayList概述 二、 ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删原创 2017-08-30 16:41:14 · 283 阅读 · 0 评论 -
java泛型
所谓泛型,就是变量类型的参数化。 泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小的抛出ClassCastException的可能。 在JDK1.5中,你可以声明一个集合将接收/返回的对象的类型。 使用泛型时如果不指明参数类型,即泛型类没有参数化,会提示警告,此时类型为Object。为什么使用泛型 使用泛型的原创 2017-03-20 12:48:16 · 215 阅读 · 0 评论 -
JAVA 构造方法与匿名对象
构造方法定义java中的类一般包含3个部分属性构造方法普通方法构造方法:构造方法名称与类名相同,无返回值;每个类中至少有1个构造方法;构造方法允许重载,重载时只需考虑改变参数类型或个数在实例化对象格式类名称 对象名称 = new 类名称()其中 类名称() 就是构造方法。如果定义类的过程中没有定义构造方法,则会在实例化时系统自动生原创 2017-07-24 17:54:12 · 680 阅读 · 0 评论 -
Java面试题总结
原文地址:http://blog.csdn.net/jackfrued/article/details/449219412013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修转载 2017-05-04 15:05:11 · 373 阅读 · 0 评论 -
java中操作符“==”与对象equals()方法的比较
1、“==” 用来比较两个操作元是否相等,操作元可以是基本数据类型,也可以是引用类型。. 2、equals()方法用来比较两个对象是否相等。对象为基本类型 int a=1,b=2; a==b //false int a=1,b=1; a==b //true对象为引用类型 Integer int1=new Integer(1); Integer int2=new Int原创 2017-03-06 21:21:51 · 413 阅读 · 0 评论 -
java集合set,list、map
set(无序,不重复) Hashset(不排序)Treeset(排序)list(索引排序,可重复) ArrayList(长度可变数组,插入删除元素慢,随机访问快)Linklist(链表数据结构,插入删除元素快,随机访问慢)map(键不重复,值可重复) HashmapTreemap(键对象进行排序)原创 2017-03-10 11:47:49 · 297 阅读 · 0 评论 -
java版本更新历史
原文地址:http://www.cnblogs.com/qinggege/p/6580788.html历史版本特性JDK Version 1.0开发代号为Oak(橡树),于1996-01-23发行. JDK Version 1.1于1997-02-19发行.引入的新特性包括:引入JDBC(Java DataBase Connectivity);支转载 2017-03-20 11:27:08 · 2728 阅读 · 0 评论 -
HashMap与Hashtable
HashMap与Hashtable的区别:Hashtable实现Map接口,继承自古老的Dictionary类,实现一个key-value的键值映射表。任何非空的(key-value)均可以放入其中。区别主要有三点:1. Hashtable是基于陈旧的Dictionary实现的,而HashMap是基于Java1.2引进的Map接口实现的;2. Hashtable原创 2017-03-20 10:04:32 · 255 阅读 · 0 评论 -
Java异常finally语句
Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。原创 2017-05-15 10:06:01 · 447 阅读 · 0 评论 -
java abstract修饰符
abstract修饰符用abstract修饰的类叫做抽象类,抽象类不能被实例化用abstract修饰的方法叫做抽象方法,抽象方法没有方法体抽象类的规则:1、抽象类可以没有抽象方法,但有抽象方法的类必须是抽象类;2、抽象的子类没有实现父类的所有抽象方法,则子类必须被定义为抽象类;abstract class Base{ abstract void method1(); a原创 2017-07-28 16:04:27 · 3503 阅读 · 0 评论 -
Java多线程
在java中要想实现多线程,有两种手段,一种是继承Thread类,另外一种是实现Runable接口.一、扩展java.lang.Thread类这里继承Thread类的方法是比较常用的一种,如果说你只是想起一条线程。没有什么其它特殊的要求,那么可以使用Thread.(笔者推荐使用Runable,后头会说明为什么)。下面来看一个简单的实例Thread类代表线程类,主要有原创 2017-05-12 15:05:12 · 274 阅读 · 0 评论 -
java Synchronized关键字和死锁
Synchronized关键字使用简单的代码实现线程的‘死锁’,这道题考的是Synchronized关键字Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前原创 2017-08-07 15:59:29 · 1964 阅读 · 0 评论 -
java 类初始化顺序
Java继承情况下的初始化顺序:/** * @author xiaohao * @date 创建时间:Jul 31, 2017 3:50:06 PM * @version 1.0 */public class Sample { Sample(String s) { System.out.println(s); }原创 2017-07-31 16:10:02 · 235 阅读 · 0 评论 -
Struts2和Spring
Struts2和SpringMVC是比较流行的MVC框架,二者的工作流程大体相似,从下面两张图就可以看出。SpringMVC工作流程图 图二 SpringMVC的工作流程描述 1. 用户向服务器发送请求,请求被spring前端控制Servelt DispatcherServlet捕获; 2.DispatcherSe转载 2017-07-07 11:46:06 · 243 阅读 · 0 评论 -
Java中的堆和栈的区别
当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种情况下,不免让很多人更加费解前面的问题。事实上,堆和栈都是内存中的一部分,有着不同的作用,而且一个程原创 2017-07-10 10:48:40 · 253 阅读 · 0 评论 -
java String类的字符串常量不可变更
String类的常量赋值后不可变更,字符串的底层实现是数组,数组的缺陷是长度固定不可变更。但是通过“+”号实现的字符串连接并不是常量变更,而是新的堆地址指向。String str="hello";str=str+" world";str+="!!!";实际上开辟了新的堆内存空间,然后str指向的新的堆内存地址,而断开了之前的指向,之前的堆内存就成了垃圾。原创 2017-07-21 11:54:27 · 854 阅读 · 0 评论 -
java String字符串类的两种实例化方法
**一、String类的两种对象实例化方法**1、直接赋值 String str="hello"str是一个对象,此时hello 保存在堆内存当中。2、使用new关键字对象实例化 String str =new String ("hello")String 本身是一个类,类中都有构造方法两者区别1、直接赋值,多个对象赋值同一个时,并没有开辟新的堆内存空间原创 2017-07-21 11:37:41 · 4110 阅读 · 2 评论 -
java中的访问修饰符--public、protected、default、private
一. Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口。Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节。访问控制分为四种级别: (1)public: 用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问; (2)protected: 用protect原创 2017-05-15 11:15:18 · 698 阅读 · 0 评论 -
线程安全与非线程安全
学习java碰到线程安全与非线程安全问题,看到这篇文章写得不错,转载学习,感谢原文作者!原文:http://www.cnblogs.com/chy2055/p/5175969.html ArrayList和Vector有什么区别? HashMap和HashTable有什么区别? StringBuilder和StringBuffer有什么区转载 2017-03-20 09:45:29 · 1018 阅读 · 0 评论