
JAVA
文章平均质量分 57
奚海坤
热爱开源并专注于互联网广告技术。
展开
-
Jdk和Spring Boot版本选择
==========================版本选择的原则:==========================1. 优先选择官方指定的long-term support(LTS)版本, 非LTS版本往往会引入较多实验性的特性, 稳定性要比LTS要差一些, LTS版本生命周期甚至会比晚发行的非LTS版更长久.2. 优先选择纯粹的bugfix版, 而不是那种有引入新特性的版本....原创 2020-04-01 00:46:46 · 1909 阅读 · 0 评论 -
JDBC常见面试题集锦(二)
JDBC的保存点(Savepoint)是什么,如何使用?有时候事务包含了一组语句,而我们希望回滚到这个事务的某个特定的点。JDBC的保存点可以用来生成事务的一个检查点,使得事务可以回滚到这个检查点。一旦事务提交或者回滚了,它生成的任何保存点都会自动释放并失效。回滚事务到某个特定的保存点后,这个保存点后所有其它的保存点会自动释放并且失效。可以读下这个了解更多关于JDBC Savepoint的转载 2014-03-19 10:30:53 · 668 阅读 · 0 评论 -
JDBC常见面试题集锦(一)
什么是JDBC,在什么时候会用到它?JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。有哪转载 2014-03-19 10:44:11 · 604 阅读 · 0 评论 -
细数JDK里的设计模式
结构型模式:适配器模式:用来把一个接口转化成另一个接口。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.bind.annotation.adapt转载 2014-03-19 11:21:48 · 498 阅读 · 0 评论 -
常见的Java基础面试题
1. BeanFactory的作用是什么? [中] BeanFactory是配置、创建、管理bean的容器,有时候也称为bean上下文。Bean与bean的依赖关系,也是由BeanFactory负责维护的。 2. bean在spring的容器中两种基本行为是什么? [中] Singleton:单态 Non-singleton或原创 2014-03-14 16:18:37 · 881 阅读 · 0 评论 -
阿里电面题目:输出给定字符串的全部连续子串
刚看到博客有位博主参加阿里电面,题目如下:给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd我第一感觉就是一个嵌套循环Java代码如下:public class Test { public static void main(String[] args) { St原创 2014-03-12 21:56:41 · 1154 阅读 · 0 评论 -
Java生成UUID
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同原创 2014-02-19 10:23:06 · 576 阅读 · 0 评论 -
Properties配置文件读取/写入例子
文件名:test.properties保存内容:domain=www.test.comjava代码:package com.test;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class DomainUtil { private st原创 2014-02-24 15:30:00 · 741 阅读 · 0 评论 -
二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。public class BinarySearch { public int[] array; public static void main(String[] args) { BinarySearch bin =原创 2014-02-25 11:20:44 · 514 阅读 · 0 评论 -
如何利用 JConsole观察分析Java程序的运行,进行排错调优
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JDK 在转载 2014-02-21 16:00:30 · 603 阅读 · 0 评论 -
Java类中静态代码块、构造代码块、构造函数快速理解
package com.test;public class Son extends Father{ static{ System.out.println("Son:静态代码块"); } { System.out.println("Son:构造代码块"); } public Son(){ System.out.println("Son:构造函数"); } public原创 2014-05-09 23:08:28 · 650 阅读 · 0 评论 -
设计模式之状态模式
设计模式中状态模式是一个比较实用的设计模式,特别在流程应用中使用。有的时候比如流程、工作流等我们需要对内部状态发生改变,你只需要改变这个对象的行为。状态模式就是这样使用的。你也可以创建不同的类来代表不同的状态和功能。不过这些类需要继承一个抽象类或者实现一个借口。使用状态模式,我们可以通过在运行时传递对象不同的状态子类,来改变对象状态。好处是我们可以清晰的剥离不同的状态子类,坏处是类的数量开始膨原创 2014-03-22 21:24:55 · 482 阅读 · 0 评论 -
Java异常
Throwable是所有Java程序中错误处理的父类,其有两个子类:Error和Exception。Error:表示由JVM所检查到的无法预期的错误,由于这是属于JVM层次的严重性错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,最多也是只能显示错误信息; Exception:表示可恢复的异常,这是可以捕捉到的;Java提供了两类主要的异常:ru原创 2014-05-11 18:57:38 · 538 阅读 · 0 评论 -
抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
抽象类和接口的区别 抽象类里面可以有非抽象的方法,接口里只能有抽象方法。 抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号。 抽象类(abstract class): a.抽象类是仅供派生的类,无法实例化一个抽象类,只能实例化从它派生的类。 b.抽象类的主要特征在于它包含抽象成员(abstract member),抽象成员是不具有实现的一个方法或属性,其作用是强制所有...原创 2014-05-10 00:24:33 · 281 阅读 · 0 评论 -
Java类中静态代码块、构造代码块、构造函数快速理解
package com.test;public class Son extends Father{ static{ System.out.println("Son:静态代码块"); } { System.out.println("Son:构造代码块"); } public Son(){ System.out.println("Son:构造函数"...原创 2014-05-09 23:16:21 · 145 阅读 · 0 评论 -
myeclipse启动速度慢的解决办法
1.用记事本打开D:\MyEclipse\eclipse\eclipse.ini, 修改参数:-Xms256m-Xmx512m-XX:PermSize=128M -XX:MaxPermSize=256M2.myeclipse启动速度慢,是因为启动的时候加载了很多插件,但对于大多数人来说是不必要的,只需要根据自己正在用的项目加载相应的工具就行了。等到用到其他的时候再加载需原创 2014-11-08 22:28:23 · 3486 阅读 · 0 评论 -
Eclipse常用快捷方式
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对转载 2014-11-09 01:20:47 · 507 阅读 · 0 评论 -
关于Java代码初始化顺序
父类:package com.test;public class Parent { static { System.out.println("Parent Static"); } { System.out.println("Parent Block"); } public Parent() { System.out.println("Parent Construct")原创 2014-11-09 00:51:38 · 627 阅读 · 0 评论 -
Math和StrictMath
Math位于java.lang包下,当我们试图调用Math.sin方法时候,在Math类中显示的是StrictMath中的 sin方法原创 2014-05-25 23:40:23 · 1279 阅读 · 1 评论 -
Eclipse Error:Java compiler level does not match the version of the installed 解决办法
Description Resource Path Location TypeJava compiler level does not match the version of the installed Java project facet. Unknown Faceted Project Problem (Java Version Mismatch)解原创 2014-03-18 18:53:19 · 1100 阅读 · 0 评论 -
同一个tomcat开多个端口分别发布不同项目
废话少说,这个还是很简单的,如果想对Tomcat同时开多个端口,需要以下几步: 1、在webapps文件夹同级目录下新建一个文件夹,比如othertest,将另一个项目放到此文件夹中(比如项目名为:Other); 2、 配置conf文件夹下的server.xml增加Service节点即可(一个端口对应一个Service节点); Xml代码转载 2014-05-11 19:40:04 · 893 阅读 · 0 评论 -
java的内存泄露预防
1、尽早释放无用对象的引用。特别是大对象和集合对象,通过置为NULL,暗示垃圾收集器来收集该对象,防止发生内存泄露。2、程序中如果出现大量使用字符串处理,避免使用 String ,应使用 StringBuffer。 for(Int i=0;i { String s1=""; s1=s1+"abc";//不要这样写转载 2014-02-21 15:55:56 · 557 阅读 · 0 评论 -
Map中HashMap和Hashtable主要有什么区别。
map中HashMap和Hashtable主要有什么区别。HashMap不是线程安全的,允许null key和null value。Hashtable是Synchronize线程安全,不允许null key和null valueHashMap内部实际是采用了一种hash表的这种数据结构。hash表我们又叫做散列表,hash表是根据关键码值(key value)而直接进行访问的数原创 2014-02-21 15:07:27 · 834 阅读 · 0 评论 -
java使用代理访问网络
在使用java的net包访问网络时,如果需要使用代理,可以这样做:[java] view plaincopySystem.getProperties().setProperty("proxySet", "true"); System.getProperties().setProperty("http.proxyHost", "183.121.23.188"); Sy转载 2013-04-13 23:51:30 · 487 阅读 · 0 评论 -
JAVA实现实用的ZIP压缩与解压
程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(decompression) 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 需在代码中自定义源输入路径和目标输出路径。 [java] view plaincopypackage com.han; import java.io.*;转载 2013-04-11 18:14:30 · 650 阅读 · 0 评论 -
反射setAccessible()方法
setAccessible()方法java代码中,常常将一个类的成员变量置为private 在类的外面获取此类的私有成员变量的value时,需要注意: 测试类:Java代码 public class AccessibleTest { private int id; priv转载 2013-04-11 00:09:02 · 582 阅读 · 0 评论 -
JSTL&EL JSTL标签库
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。JSTL标签库可分为5类:q 核心标签库q I18N格式化标签库q SQL标签库原创 2013-04-08 13:40:55 · 1013 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常原创 2013-04-05 23:59:29 · 452 阅读 · 0 评论 -
类 StringTokenizer
java.util 类 StringTokenizerjava.lang.Object java.util.StringTokenizer所有已实现的接口: EnumerationObject>public class StringTokenizerextends Objectimplements EnumerationObject>string toke转载 2013-04-01 22:10:13 · 487 阅读 · 0 评论 -
浅谈Java中final,finalized,finally
final:final可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。final成员当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化原创 2013-03-19 22:05:09 · 524 阅读 · 0 评论 -
总结JSP,Struts等应用程序中在Tomcat中的乱码问题
一般表单提交有POST,GET方式,不过处理的时候方法有所区别一般post可以在JSP页面添加 来处理GET方式可以用转换编码方式类似的如:不过这不是很好的处理方式,比较麻烦。每个页面都要写这样重复的转换。POST方式一般可以用Filter过滤的Servlet来实现创建EncodingFilter.java=======================/* * CoppyRight (c) Eay原创 2007-05-09 11:09:00 · 862 阅读 · 0 评论 -
Jdbc连接池介绍
C3P0DescriptionC3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 Homehttp://sourceforge.net/projects/c3p0ProxoolDescription这是原创 2007-05-01 14:40:00 · 1379 阅读 · 0 评论 -
getCanonicalName和getSimpleName getName的区别与应用
接口:Java代码 package com.test; public interface Fruit { } 一个实现类:Java代码 package com.test; public class Apple implements Fruit {原创 2013-05-03 10:47:44 · 604 阅读 · 0 评论 -
字节流与字符流的区别详解
先来看一下流的概念:在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。字节流与字符流在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputS原创 2013-12-17 15:50:29 · 543 阅读 · 0 评论 -
Iterator 循环 List 使用remove方法报错的分析与解决办法。
1、实例代码:Collection coll = new ArrayList(); coll.add("123"); coll.add("234"); coll.add("456"); for (Iterator it = coll.iterator(); it.hasNext();) { String object = it.next(); System.out.原创 2014-02-21 14:16:22 · 1650 阅读 · 0 评论 -
Java深拷贝除了通过实现Cloneable接口,另外还可以通过序列化实现对象的拷贝。
代码如下:import java.io.Serializable;public class CloneUtils { public static T Clone(T obj) { T cloneObj = null; try { //字节数组流写入内存缓冲区 ByteArrayOutputStream baos = new ByteArrayOutputStream原创 2014-01-10 16:29:14 · 824 阅读 · 0 评论 -
java mail 设置参数
Session需要使用java.util.Properties来构造,常用的用来构造Session的属性:属性名含义mail.smtp.user SMTP的缺省用户名。 mail.smtp.host 要连接的SMTP服务器。 mail.smtp.port 要连接的SMTP服务器原创 2013-05-03 13:48:39 · 1283 阅读 · 0 评论 -
Struts2的配置中:Could not find action or result 问题的解决方法
我把struts.xml没有放到src下,而是根据自己的习惯放到新目录:WEB-INF/conf/下了。这时候需要在web.xml中进行必要的配置,配置情况如下: [html] view plaincopyfilter> filter-name>struts2filter-name> filter-class>org.apache.struts2转载 2013-04-11 10:15:59 · 646 阅读 · 0 评论 -
解决spring3 mvc中乱码的问题。
今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱码问题一般都是写一个filter,在filter中实现编码的转换,配置方法是是在web.xml中加入以下代码:[html] view plaincopyfilter> filter-name>Character Encodingfilter-na转载 2013-04-11 17:47:44 · 523 阅读 · 0 评论 -
jstl标签的用法 fn标签
fn标签fn标签更确切的说应该叫做fn函数,主要用于el表达式中,使用时需要在页面中引入:JSP2.0规范下出现的Functions标签共有16个。1.fn:length 长度函数作用:计算集合的长度;返回值是集合的长度。例子:[html] view plaincopy${fn:length(userList)} ${fn:length(arr转载 2013-04-11 17:54:17 · 728 阅读 · 0 评论