- 博客(72)
- 资源 (8)
- 收藏
- 关注
转载 贪心算法经典例子
什么是贪心算法呢?所谓贪心算法是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优解出发来考虑,它所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题都能产生整体最优解或整体最优解的近似解。贪心算法的基本思路如下:1.建立数学模型来描述问题。2.把求解的问题分成若干个子问题。3.对每个子问题求解,得到每个子问题的局部最优解。4.把每个子问题的局部最优解合成为原来问题的一个解。实现该算法的过程:从问题的某一初始状态出发
2016-04-26 23:36:27 8307 1
转载 JAVA四种引用方式
1.1、强引用当我们使用new 这个关键字创建对象时被创建的对象就是强引用,如Object object = new Object() 这个Object()就是一个强引用了,如果一个对象具有强引用。垃圾回收器就不会去回收有强引用的对象。如当jvm内存不足时,具备强引用的对象,虚拟机宁可会报内存空间不足的异常来终止程序,也不会靠垃圾回收器去回收该对象来解决内存。1.2、软引用如果一个对象具备软引用,如果内存空间足够,那么垃圾回收器就不会回收它,如果内存空间不足了,就会回收该对象。当然没有被回收之前,该对
2016-04-25 13:05:39 1015
原创 sleep()与wait()有什么区别
1.wait()方法属于object类中的,sleep()是属于Thread类中的2.sleep()方法导致程序暂停执行指定的时间,让出CPU给其他线程,但是线程不会释放对象锁,并且到指定的时间又会自动恢复运行状态3.当调用wait()方法的时候,线程会放弃对象锁,并且进入等待池等待,当针对此对象调用notity(),notifyall()方法后,线程才进入对象锁定池准备,获取对象锁进入运行状态。
2016-04-25 12:53:45 529
原创 剑指offer(二十五)之把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路分析: 先将int类型的数组,转化为string类型数组,再利用 Arrays.sort(str,new compareMinNmber()),对str数组进行排序,排序的规则由compareMinNmber的方法compare来规定,其中compareMinNmber实现了Comparator(比较器
2016-04-23 21:10:05 466
转载 深入理解Arrays.sort()
Arrays.sort(T[], Comparator < ? super T > c) 方法用于对象数组按用户自定义规则排序.官方Java文档只是简要描述此方法的作用,并未进行详细的介绍,本文将深入解析此方法。1. 简单示例sort方法的使用非常的简单明了,下面的例子中,先定义一个比较Dog大小的Comparator,然后将其实例对象作为参数传给sort方法,通过此示例,你应该能够快速掌握Arrays.sort()的使用方法。
2016-04-23 17:12:45 660
转载 java中的compareto方法的详细介绍
java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码String a="a",b="b";System.out.println(a.compareto(b));则输出-1;若a="a",b="a"则输出0;若a="b",b="a"则输出1; 单个字符这样比较,若字符串比较长呢??若a="ab",b="b",则输出-1;若a="abcdef",b="b"则输出-1;也就是说,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值; 如果
2016-04-23 16:49:18 9470
原创 JSP中静态包含和动态包含的区别?
主要从以下5方面进行分析:1.语法: 静态包含:<%@ include file=""%> 动态包含:<jsp: include page=""%>2.静态包含时,包含页面和被包含页面中的html.head,body等标签总共只有出现一次,否则会报错;而动态包含不会。3.静态包含不会检查所包含文件中的变化;但是动态包含,可以检查所含文件中的变化,并且可以带参数4.静态包含是先将文件中内容导入被包含的文件中,再一起编译,最后再展现给用户(先包含再编译)5.动态包含可以自动区分被包含文件是静态的还
2016-04-23 16:01:43 7285
原创 JAVA接口与抽象类的区别
从以下几个方面来介绍:1.修饰符的不同: 接口:interface 抽象类:abstract2.成员属性: 抽象类不能有成员变量,而接口可以有成员变量,但必须是public static final3.成员方法: 接口中的方法,默认都是public abstract,并且不能有普通方法;而抽象类中可以有非抽象方法,也可以有 抽象方法4.构造方法: 接口中不能有构造方法,而抽象类中可以有构造方法5.继承与实现: 实现接口必须实现其所有的方法,而继承抽象类时,可以不对所有抽象方法进行重写
2016-04-23 15:45:48 454
转载 数据库连接池的工作原理
对于共享资源,有一个很著名的设计模式:资源池(resource pool)。该模式正是为解决资源频繁分配、释放所造成的问题。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从缓冲池中取出一个了,使用完毕后再放回去。我们可以通过设定连接池最大数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库连接使用数量,使用情况,为系统开发,测试以及性能调整提供依据。
2016-04-23 15:22:10 468
原创 剑指offer(二十四)之数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路分析: 创建一个HashMap,key--数组元素,value--数组元素出现的个数;用Iterator和Map.Entry进行循环,取key,value值。
2016-04-22 23:36:39 463
原创 剑指offer(二十三)之最小的K个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
2016-04-22 21:16:08 340
原创 剑指offer(二十二)之和为S的连续正数序列
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
2016-04-22 18:50:14 453
转载 Servlet生命周期与工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法Servlet初始化阶段: 在下列时刻Servlet容器装载Servlet: 1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.X
2016-04-22 11:36:40 444
转载 Servlet 生命周期、工作原理
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。service():它是S
2016-04-22 11:35:36 452
原创 遍历HashMap的几种常用方法
1.可以采用keySet()+for循环的方法来遍历,keySet()返回的是一个Key值的集合Map map=new HashMap();map.put("key1","value1");map.put("key2","value2");map.put("key3","value3");for(String key:map.keySet()){ system.out.pri
2016-04-22 11:24:23 4230 1
原创 重写与重载的区别
重写与重载都是JAVA多态性的不同表现。重写体现的是子类与父类之间的多态性表现。重载体现的是一个类中多态性一种表现。一、重写(覆盖)的规则: 1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。 3、重写的方
2016-04-22 10:55:20 2227
原创 剑指offer(二十一)之和为S的两个数字
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。思路分析: 我是按照冒泡排序的思想,先求出所有满足和为S的元素,然后进行积最小的判断 ,若最小,则先清空ArrayList,再把元素放进行。具体代码
2016-04-22 09:25:39 392
原创 剑指offer(二十)之不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路分析: 先将两个整数,用string.valueOf()转为String类型,再用BigInteger的构造方法,将它们转为BigInteger,使用BigInteger的add()方法进行加减,再用intValue()方法,转为INT代码1:import java.math.Bi
2016-04-21 20:06:13 459
转载 BigInteger的相关用法
JAVA之BigInteger用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂。用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理。下面是写的一些Java中一些基本的函数的及其……头文件:import java.io.*;import java.util.*;imp
2016-04-21 19:50:54 579
原创 intValue()的用法
1.intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。也就是说,不单是Integer有intValue方法,Double,Long等都有此方法。 2.此方法的意思是:输出int数据。每个数值类中具体的实现是不同的。例如: Float类和Double类的intValue方法,就是丢掉了小数位,而Long的intValue
2016-04-21 19:40:11 38757 1
转载 String.valueOf() 方法的使用
1.由基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下列几种 String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 String.valueOf(char c) : 将 char 变量 c 转
2016-04-21 19:34:00 1644
原创 剑指offer(十九)之求1+2+3+...+n
题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路分析:可以使用逻辑与(&&)与递归来实现public class Solution { public int Sum_Solution(int n) { int result=0; in
2016-04-21 15:30:39 516
原创 剑指offer(十八)之数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路分析: 创建一个HashMap,key用来保存数组的元素,value用来记录元素出现的次数。再用Map.Entry配合Iterator进行遍历,用getValue()得到值为1的元素,将其保存在num1和num2中。代码://num1,num2分别为长度为1的数组。传出
2016-04-21 13:26:11 322
转载 servlet/filter/listener/interceptor区别与联系
一、概念: 1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。S
2016-04-21 10:55:07 532
原创 TCP,UDP,三次握手
1.TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来.2.UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!3.TCP与
2016-04-21 10:41:22 3157
原创 剑指offer(十七)之包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。代码1:import java.util.Stack;public class Solution { Stack stack1=new Stack(); Stack stack2=new Stack(); public void push(int node
2016-04-21 00:19:12 299
转载 synchronized与static synchronized 的区别
1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。 static synchronized恰好就是要控制类的所有实例的访问了,static synchroniz
2016-04-20 11:51:10 648
转载 session小结
一、Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。二、Session和Coo
2016-04-20 11:18:50 295
原创 session与cookies的区别
1.session的简单介绍session是一种保存上下文信息的机制,保存的是对象,它的值是存放在服务器端,它通过sessionId来区分不同的客户端,而sessionId是保存在客户端的,做为客户端与服务器的验证标识,它是一个24位的随机字符串,用户每次提交页面时,浏览器都会把这个sessionId包含在HTTP头中提交给WEB服务器。2.session的产生过程当服务器接收到客户端
2016-04-20 11:14:11 2045
转载 JAVA对象的序列化和反序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是
2016-04-19 23:39:11 447 1
原创 剑指offer(十六)之顺时针打印矩阵
题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路分析:顺时针打印就是按圈数循环打印,一圈包含两行或者两列,在打印的时候会出现某一圈中只包含一行,要判断从左
2016-04-19 19:31:56 387
原创 剑指offer(十五)之合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则思路分析: 首先新建一个结点,用来存放合成后的链表;然后分析两个链表为NULL情况,再进行结点大小的比较,将值放到新的链表当中,最后把未结束的链表连接到合并后的链表尾部代码public class Solution { public ListNode Merge(Li
2016-04-19 11:20:05 311
原创 Tomcat类加载器架构
1.Tomcat有3组目录可以用来存放JAVA类库a./common 该目录用来存放同时可以被Tomcat和其他所有WEB应用程序共同使用的类库b./server 该目录用来存放只能被Tomcat使用,而不能被WEB应用程序使用的类库c./shared 该目录用来存放只能被WEB应用程序使用的类库2.还有一个目录用来存放WEB应用程序自身的目录 /WEB-INF/
2016-04-19 09:29:47 432
原创 JSP内置对象
共有9大内置对象:1.request javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP请求的细节(参数,属性,头标和数据) 作用域为request(用户请求期)2.response javax.servlet.ServletResponse的子类型,此对象封装了返回到HTTP客户端的输出,向页面作者提
2016-04-19 08:39:35 352
原创 ArrayList,Vector,LinkedList的区别
主要从以下几个方面来分析:1.接口三则都是List接口的实现类2.内部存储的实现方式ArrayList,Vector内部存储的实现方式是动态数组,在内存中是连续存放的,而LinkedList是以链表的方式来实现存储的,在内存中不是连续存放的。3.从线程安全性来比较和效率Vector的是许多方法都用synchronized来修饰(加同步锁),所以Vector是线程安全的,而A
2016-04-18 23:23:29 415
原创 HashMap,HashTable,HashSet之间的区别
HashMap,HashTable,HashSet之间的区别1.实现接口的不同 3.执行效率2.线程安全性,同步 4.key,value能否存放NULL5.添加元素的方法不同
2016-04-18 19:35:06 2059 1
原创 剑指offer(十四)之调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变思路分析: 创建两个ArrayList对象,一个存放数组奇元素,一个存放数组偶元素,最后再重新放入数组中。
2016-04-18 12:24:36 368
原创 剑指offer(十二)之反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。思路分析: 用栈来存储链表的节点,栈是先进后出,再将栈弹出到一个新链表中即可。
2016-04-18 09:12:42 384
oracle的JDBC驱动
2016-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人