![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
Jimmy_Lee
这个作者很懒,什么都没留下…
展开
-
throws和try/catch的区别与联系
先说throw,它是一种控制程序流程的特殊方法而已。没有相应的catch的话,可以中止当前的方法继续执行。这个不做具体的说明,我们重点说一下try/catch和throws的区别与联系throws在声明方法时候,如果不声明throws的话,那么一般的Exception都要在这个方法中终结。所以他必须有相应的catch处理编译时的一场来避免错误的发生。当声明了throws之后转载 2014-03-19 21:29:42 · 2752 阅读 · 0 评论 -
运行时异常与一般异常有何异同?
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。 Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Exception:表示可恢复的例外,这是可捕捉到的。Java提供了两类主要的异常:runtime e转载 2014-05-29 20:02:34 · 628 阅读 · 0 评论 -
java中String的getBytes方法使用
public class test { public static void main(String[] args){ String a="哈哈"; try { byte[] aa = a.getBytes("GB2312"); byte[] ab = a.getBytes("UTF-8"); for (int i = 0; i < aa.length; i++) {转载 2014-07-11 16:13:13 · 2976 阅读 · 0 评论 -
Java多线程之共享资源
在多线程程序运行过程中,可能会涉及到两个或者多个线程试图同时访问同一个资源。为了防止这种情况的发生,必须在线程使用共享资源时给资源“上锁”,以阻挡其它线程的访问。而这种机制也常常被称为互斥量,本文主要介绍它的两种方式synchronized和Lock 。1、synchronized当任务要执行被synchronized关键字保护的代码片段的时候,它会检查锁是否可用,然后获取锁,执行转载 2014-08-04 15:12:23 · 947 阅读 · 0 评论 -
判断一个对象是否为空
1if(StringUtils.isBlank(MapUtils.getString(fieldValueMap,"CJSJ")))if(fieldValueMap.get("CJSJ")==null||fieldValueMap.get("CJSJ").toString().trim().equals("")){原创 2014-08-06 17:50:23 · 754 阅读 · 0 评论 -
关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
题目:short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?解答:Java规范有这样的规则[1.高位转低位需要强制转换 2.低位转高位自动转.]short s1 = 1; s1 = s1 + 1;有什么错? 答: i 是int 型转载 2014-08-13 11:30:10 · 649 阅读 · 0 评论 -
java中round()与floor的区别
round是四舍五入,注意负数5是舍的,例如:Math.round(1.5)值是2,Math.round(-1.5)值是-1;floor就是直接去掉小数保留整数,即如果参数是正数则小数部分全舍,参数是负数则小数部分全入。 例如:Math.floor(2.6)的值是2,Math.floor(-2.1)的值是-3转载 2014-08-13 11:20:53 · 1651 阅读 · 0 评论 -
代理后获取客户端IP地址
request方法客户端IP: request.getRemoteAddr() 输出:192.168.0.106 客户端主机名:request.getRemoteHost()输出:abc request.getHeader("Host") 输出:192.168.0.1:8080 Web服务器名字:request.getServerName()输出:192.168.0.1 服务器监转载 2014-09-10 17:16:31 · 1267 阅读 · 0 评论 -
StringUtils的isEmpty、isNotEmpty、isBlank、isNotBlank区别
isEmpty/isNotEmpty:判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 ;isBlank/isNotBlank:判断某字符串是否为空或长度为0或由空白符(whitespace) 构成原创 2014-09-03 17:15:07 · 990 阅读 · 0 评论 -
Java IO读写大文件的几种方式及测试
本文转自:读取文件大小:1.45G 第一种,OldIO: Java代码 public static void oldIOReadFile() throws IOException{ BufferedReader br = new BufferedReader(new FileReader("G://lily_947.txt"));转载 2014-10-22 01:35:11 · 1076 阅读 · 0 评论 -
RandomAccessFile与内存映射文件
RandomAccessFileRandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件。RandomAccessFile不属于InputStream和OutputStream类系的。实际上,除了实现DataInput和DataOutput接转载 2014-10-22 01:36:43 · 721 阅读 · 0 评论 -
图解classloader加载class的流程及自定义ClassLoader
/*** 转载请注明作者longdick http://longdick.iteye.com**/ java应用环境中不同的class分别由不同的ClassLoader负责加载。一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassL转载 2014-10-16 21:14:58 · 785 阅读 · 0 评论 -
PreparedStatement的优点包括两个: 1)会尽可能的提高性能 2)提高安全性(防止SQL Injeciton) 如争光说的二者相差一个单词Prepared,prep
PreparedStatement的优点包括两个: 1)会尽可能的提高性能 2)提高安全性(防止SQL Injeciton) 如争光说的二者相差一个单词Prepared,prepared的意思是准备好的。在处理SQL语句的时候PreparedStatement用于处理动态SQL语句,在执行前会有一个预编译过程,它是有时间开销的,虽然相对数据库的操作该时间开销可以忽转载 2014-10-17 12:17:19 · 1460 阅读 · 0 评论 -
java try、catch、finally及finally执行顺序详解
1.为什么要用finally先看一个没有finally的异常处理try-catch语句:假设count为要使用到的资源,并且用完要求释放此资源。那么我们可以把释放资源的语句放到try-catch后执行,当前的程序不管是在执行完try语句块还是catch语句块,都会顺序执行到下面释放资源的语句。int count = 0; //初始化资源try{ count++; if转载 2014-05-29 20:20:31 · 647 阅读 · 0 评论 -
spring的注入
spring的三种注入方式:接口注入(不推荐)getter,setter方式注入(比较常用)构造器注入(死的应用)关于getter和setter方式的注入: autowire="defualt" autowire=“byName” autowire="bytype"例如:有如下两个类需要注入 1 package org.jia; 2 3 p转载 2014-10-16 21:41:04 · 509 阅读 · 0 评论 -
spring四种依赖注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制转载 2014-06-13 10:41:06 · 470 阅读 · 0 评论 -
Java程序性能优化
一、避免在循环条件中使用复杂表达式在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。例子:import java.util.vector;class cel { void method (vector vector) { for (int i = 0; i转载 2014-06-11 11:23:00 · 578 阅读 · 0 评论 -
Java条件表达式结果类型的规则
条件表达式结果类型转换规则:System.out.println(false ? 1.0 : 1);输出: 1.0不应该输出成: 1System.out.println( false ? 1 : 'a');输出: aSystem.out.println( false ? 1.0 : 'a');输出: 97.0什么表达中1变成1.0,就会输出'a'呢?System转载 2014-06-11 11:10:39 · 1788 阅读 · 1 评论 -
static与final的区别
①static关键字 static 关键字可以用来修饰类的变量,方法和内部类。static 是静态的意思,也是全局的意思它定义的东西,属于全局与类相关,不与具体实例相关。就是说它调用的时候,只是 ClassName.method(),而不是 new ClassName().method()。new ClassName()不就是一个对象了吗?static 的变量和方法不可以这样调用的。转载 2014-03-25 19:26:33 · 1102 阅读 · 0 评论 -
Java泛型详解
Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。对于泛型概念的引入,开发社区的观点是褒贬不一。从好的方面来说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误(安全性更好),因为编译器可以转载 2014-04-21 00:15:56 · 733 阅读 · 0 评论 -
Struts2获取request三种方法
struts2里面有三种方法可以获取request,最好使用ServletRequestAware接口通过IOC机制注入Request对象。在Action中获取request方法一: 在Action中的代码:Map request = (Map)ActionContext.getContext().get("request");List tasks = taskManager.转载 2014-04-23 00:43:16 · 594 阅读 · 0 评论 -
Java 线程实例讲解综述
来源: ocean20 http://blog.csdn.net/ocean20/archive/2008/05/18/2455709.aspx 编写具有多线程能力的程序经常会用到的方法有: run(), start(), wait(), notify(), notifyAll(), sleep(), yield(), join() 还有一个重要的关键字:syn转载 2014-04-22 18:52:38 · 729 阅读 · 0 评论 -
java中HashMap详解
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap转载 2014-04-22 19:52:01 · 460 阅读 · 0 评论 -
java中引用传递和值传送的区别
public class Note { public static void main(String args[]) { String name[] = { "Killer", "Miller" }; String name0 ="Killer"; String name1 = "Miller"; swap(name0, name1); System.out.println(转载 2014-04-24 09:23:43 · 1940 阅读 · 0 评论 -
java中的值传递和引用传递
转自:http://blog.csdn.net/wyzsc/article/details/6341107继承 但可以用多次implements 接口实现多继承的功能值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对转载 2014-04-23 22:48:02 · 652 阅读 · 0 评论 -
每隔一秒钟显示一个字符串“Hello”
public class test implements Runnable{ public static void main(String args[]){ test t=new test(); Thread tt = new Thread(t); tt.start(); } public void run(){ for(;;){ try{ Thread.s原创 2014-04-11 15:30:53 · 3956 阅读 · 0 评论 -
java中为什么使用泛型,使用泛型的优点?
优点就是你在使用范型时.就规定了只有某种类型的数据才能放进集合里.你在集合中取数据时就不用进行强制转换.这样就提高了程序的性能转载 2014-05-19 16:56:19 · 1495 阅读 · 1 评论 -
java 中 i=i++ 的解释
记得大学刚开始学C语言时,老师就说:自增有两种形式,分别是i++和++i,i++表示的是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我的理解是不是错了:public class Client { public static void main(String[] args) { int count =0; for(int i=0;i转载 2014-04-28 18:55:49 · 896 阅读 · 1 评论 -
执行数据库查询时,如果要查询的数据有很多,假设有1000万条,用什么办法可以提高查询速率?在数据库方面或java代码方面有什么优化的方法
1、在数据库设计方面: (1)建立索引; (2)分区(MySQL)转载 2014-05-21 19:49:44 · 5160 阅读 · 0 评论 -
ClassLoader 加载流程
当运行一个程序的时候,JVM启动,运行bootstrap classloader,该ClassLoader转载 2014-05-25 16:07:44 · 527 阅读 · 0 评论 -
抽象类的形象描述
用比较通俗的方法描述: 假如有两个程序员,两个在两个程序里都要用到一种功能,比如要取一个对象名。 甲自己做了一个方法叫getname,乙也作了一个方法叫qumingzi。如果两个人要去看对方的程序,那么这个方法要读懂是不是要有一个过程? 如果在公司里,有个抽象类,离面有个抽象方法较getName,公司规定,凡遇到这样的问题就实现这个方法。那么这两个人要读对方的代码是不是就容易了转载 2014-06-10 01:32:06 · 1194 阅读 · 0 评论 -
Java中可变长参数的使用及注意事项
在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print("hello");print("hello","lisi");print("hello","张三", "alexia");下面介绍如何定义可变长参数 以及如何使用可变长参数。1. 可变长参数的定义使用...表示可变长参数,例如转载 2014-06-09 20:51:33 · 465 阅读 · 0 评论 -
JAVA中浅复制与深复制
1.浅复制与深复制概念⑴浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象(复制内容,不引用对象地址,即改变复制对象,不改变被复制对象内容),而不复制它所引用的对象(但改变复制对象的引用对象,会改变被复制对象的引用对象内容)。 ⑵深复制(深克隆)被复制对象的所有变量都含有与原来的对象相同转载 2014-12-08 17:53:15 · 479 阅读 · 0 评论