面试
文章平均质量分 78
talentluke
这个作者很懒,什么都没留下…
展开
-
javac和java的路径问题
javac和java的路径问题设定项目目录为packageTest,举三个例子来讨论javac和java两个命令对路径的要求。例1:javac的搜索根目录为当前目录,例如,在test下建立如下目录:aaa/bbb/ccc,再在test下建立一个文件:Main.java,内容如下:view plaincopy to clipboardprint?1. package aaa.b...原创 2013-11-03 22:57:21 · 830 阅读 · 0 评论 -
深入探讨 Java 类加载器
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}</style>...原创 2013-05-20 15:48:16 · 95 阅读 · 0 评论 -
final变量需要显示初始化
final int f = 10;//final int f;下面语句会报未初始化的错误System.out.print("f = " + f); 必须显示初始化final变量,不能误以为以默认值初始化。原创 2013-05-20 00:15:37 · 252 阅读 · 0 评论 -
try-catch-finally中return的执行情况
public class Test2 { public static void main(String[] args) { System.out.print("in main b = " + tt()); } public static int tt() { int b = 23; ...原创 2013-05-18 12:04:34 · 90 阅读 · 0 评论 -
Java EJB、CORBA、Webservices分布式通信基本原理及特点
1. Java远程调用的特点是什么 2. Java EJB、CORBA、Webservices分布式通信基本原理及特点 3.Java 远程调用与分布式通信的区别 4. Java 分布式通信的几种方式及其特点 5. Java WebService异构系统通信的原理及特点:SOAP与WSDL 1. Java远程调用的特点是什么 ...原创 2013-05-13 10:19:21 · 317 阅读 · 0 评论 -
java传参是传值还是传引用
个人觉得java是传值,当参数类型是基本类型,复制的是值,而当参数是引用类型时,复制的也是值,只不过这个值是地址。如下例调用change(A a)有几个过程:(1)创建一个临时变量(2)将实参的值复制给临时变量,由于是引用变量,实参的值是一个地址,故存的也是同一个地址(3)方法中改变了临时变量所指向的地址,而实参指向的地址没变 change(String str)同理,改变的...原创 2013-04-28 00:44:18 · 223 阅读 · 0 评论 -
Java方法继承、方法重载、方法覆盖总结
1、方法继承:利用extends关键字一个方法继承另一个方法,而且只能直接继承一个类。 * 当Sub类和Base类在同一个包时Sub类继承Base类中的public/protected/默认级别的变量个方法 * 在不同包时继承public/protected级别的变量和方法。 2、方法重载:如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载。...原创 2013-04-28 00:24:30 · 152 阅读 · 0 评论 -
Java覆盖与隐藏的区别
1 隐藏隐藏现象发生在子类和父类之间,隐藏是针对父类中成员变量和静态方法而言。当子类声明与父类中成员变量具有相同的变量名的变量时,则实现了对父类中成员变量的隐藏;当子类声明了与父类中的静态成员方法具有相同的方法名,参数列表和相同的返回值时,则实现了对父类中静态方法的隐藏。成员变量和静态方法由栈中对象类型决定,不是由实例类型决定,是与类相关的,不是与实例相关的,编译时检查的。2覆盖发...原创 2013-04-28 00:23:43 · 256 阅读 · 0 评论 -
java 内部类
Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知识在Android手机开发中经常用到。一、常规内部类所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释。。。)先写一个最简单的内部类的例子,大家感觉一下:1public class Out...原创 2013-04-27 21:50:08 · 96 阅读 · 0 评论 -
局部内部类为什么只能访问final局部变量?
如果将一个访问了final的局部变量的内部类进行反编译,可以发现该变量是被作为构造函数的参数传入进去的,当然与之一起传入的参数还有外部类引用this。 局部变量是临时的,方法一旦结束就被释放,内部类是要在java虚拟机动态运行的程序,它的生命周期不随方法结束而结束。 1)从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处...原创 2013-04-27 21:48:05 · 129 阅读 · 0 评论 -
java序列化(Serializable)的作用和反序列化
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。 2、什么情况下需要序列化 a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对...原创 2013-04-23 15:23:43 · 80 阅读 · 0 评论 -
java如何初始化对象
当一个对象被创建之后,虚拟机会为其分配内存,主要用来存放对象的实例变量及其从超类继承过来的实例变量(即使这些从超类继承过来的实例变量有可能被隐藏也会被分配空间)。在为这些实例变量分配内存的同时,这些实例变量也会被赋予默认值。 引用 关于实例变量隐藏 123456789 1011class...原创 2013-04-22 16:57:25 · 816 阅读 · 0 评论 -
MySQL分区性能初探
一, 分区概念 分区允许根据指定的规则,跨文件系统分配单个表的多个部分。表的不同部分在不同的位置被存储为单独的表。MySQL从5.1.3开始支持Partition。分区和手动分表对比手动分表 分区多张数据表一张数据表重复数据的风险没有数据重复的风险写入多张表写入一张表没有统一的约束限制强制的约束限制...原创 2013-04-22 09:18:28 · 94 阅读 · 0 评论 -
sql语句的执行顺序
SQL语句的执行顺序才能继续,上网上查了一下相关的资料,现整理如下: 一、sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。 3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。 4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。 5...原创 2013-04-19 16:04:05 · 94 阅读 · 0 评论 -
深入探讨 Java 类加载器
摘自http://www.ibm.com/developerworks/cn/java/j-lo-classloader/#code1 简介: 类加载器(class loader)是 Java™中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着...原创 2013-05-20 15:51:43 · 96 阅读 · 0 评论 -
java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError的区别
这2个东西应该是java里很常见,很简单,他们都和classpath设定有关,但区别在哪里呢? 我们都知道java里生成对象有如下两种方式: 1:Object obj = new ClassName(); 直接new一个对象 2:Class clazz = Class.forName(ClassName); Object obj = cla...原创 2013-05-21 11:05:11 · 156 阅读 · 0 评论 -
Java 内存模型
Java 内存模型转自WIKI,自由的百科全书跳转到导航,搜索 Java内存模型描述了在Java中,线程之间是如何通过内存互相通信、控制或者影响对方。内存模型和单线程模型共同构成了Java编程语言。在1995年设计的Java内存模型被大多数人认为是不成功的,它使得许多可能改善性能的优化措施无法实施,也不能保证代码的绝对安全。在2004年,Tiger(Java 5.0)中,Ja...原创 2014-01-08 10:05:22 · 114 阅读 · 0 评论 -
抽象类与接口选择
从设计理念层面看 abstract class 和 interface 上面主要从语法定义和编程的角度论述了abstract class和interface的区 别,这些层面的区别是比较低层次的、非本质的。本小节将从另一个层面:abstract class和interface所反映出的设计理念,来分析一下二者的区别。作者认为,从这个层面进行分析才能理解二者概念的本质所在。 前面已经提到过,...原创 2013-12-06 00:20:06 · 152 阅读 · 0 评论 -
抽象方法、final、静态方法
.abstract class Name { private String name; public abstract boolean isStupidName(String name) {} } 这有何错误?答案: 错。abstract method必须以分号结尾,且不带花括号。2.public class Something { void doSomething ()...原创 2013-01-21 20:23:31 · 145 阅读 · 0 评论 -
Integer疑难
Java代码 public static void main(String[] args) { Integer a=200 ; Integer b=200 ; int c= 200 ; System.out.println("a==c " +(a...原创 2013-01-08 10:28:46 · 146 阅读 · 0 评论 -
C的异或运算的具体用法
异或:若参加运算的两个二进制位同号,则结果为0;异号则为1.即 0异或0=0,1异或0=1,1异或1=0.应用:1.使特定位翻转。假设有01111010,想使其低4位翻转。可以将它与00001111进行异或运算。结果为011101012.与0异或,保留原值。如012异或00=012.3.交换两个值,不用临时变量。假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:...原创 2013-01-06 01:28:18 · 403 阅读 · 0 评论 -
高效产生一组不重复的随机数
这个需求应该是很常见的吧,需要从 0 到 n 之间选 k 个不重复的数组成一个序列。我最早遇到这个问题是在给校ACM比赛出题时,需要随机产生一些测试数据,当时我想的是用一个辅助数组记录之前已经产生的随机数,如果当前产生的随机数已经出现过就再重新随机。显然这样的实现效率是很低的,设想从10000个数中随机产生10000个数的序列,当前面9999个数已经确定了时,最后一个数被随机到的概率是 0.000...原创 2013-01-06 00:58:25 · 363 阅读 · 1 评论 -
如何高效产生m个n范围内的不重复随机数(m<=n)
如何产生不重复的随机数?最容易想到的方法,是逐个产生这些随机数,每产生一个,都跟前面的随机数比较,如果重复,就重新产生。这是个很笨的方法,且比较次数呈线性增长,越往后次数越多。其实这些比较是多余的,完全可以不进行比较,只要反过来,按顺序产生这些数,但随机产生它们的位置。例如下面产生100个100以内不重复随机数的代码:int a[100];for(i=0; i<=99; +...原创 2013-01-05 22:39:49 · 306 阅读 · 0 评论 -
产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
static void test() { int[] intArr = new int[100]; Random rd = new Random(); int intTmp; int iNum = 0; System.Collections.H...原创 2013-01-05 22:38:48 · 243 阅读 · 0 评论 -
不开辟临时空间,实现以单词为单位反转字符串
摘自http://blog.chinaunix.net/uid-21228455-id-2406482.html「原题」Write a function that reverse string word by word. For instance:"The houst is blue" --> "blue is house the""Zed is dead" ...原创 2013-01-05 22:23:55 · 431 阅读 · 0 评论 -
Java疑难点总结
1.类加载和初始化加载——>连接(验证->准备->解析)——>初始化。 若父类未初始化,则先初始化父类; 初始化一个类(或接口),不会先初始化它所实现的接口(或父接口); 当使用的静态变量或方法不在当前类或接口中定义,而在父类或接口中定义,则不会初始化当前类而只初始化父类; 总之,主动使用的才初始化。2.类加载器加载器间的父子...原创 2013-06-07 02:41:41 · 157 阅读 · 0 评论 -
Java 虚拟机是如何判定两个 Java 类是相同
Java 虚拟机不仅要看类的全名是否相同,还要看加载此类的类加载器是否一样。只有两者都相同的情况,才认为两个类是相同的。 对于 Java 虚拟机来说,如果两个类不同,试图对这两个类的对象进行相互赋值,会抛出运行时异常 ClassCastException。 //文件Sample.javapackage com.luke;public class Sample{ pri...原创 2013-05-27 17:17:06 · 808 阅读 · 0 评论 -
ConcurrentHashMap原理分析
一.Java并发基础当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增, 第一步就是获取i的值,当A获取i的值为0,在A将新的值写入A之前,B也获取了A的值0,然后A写入,i变成1,然后B也写入i,i这个时候依然是1. 当然j...原创 2013-05-22 15:42:22 · 93 阅读 · 0 评论 -
深入探讨 Java 类加载器
参考深入探讨 Java 类加载器http://www.ibm.com/developerworks/cn/java/j-lo-classloader/#minor1.1 Java程序员从笨鸟到菜鸟之(九十七)深入java虚拟机(六)——类加载的父亲委托机制http://blog.csdn.net/csh624366188/article/details/80764...原创 2013-05-21 11:06:07 · 105 阅读 · 0 评论 -
数据库调优
“数据库调优”的事情,心想这不是DBA的事吗,但回答不好还是显得不够专业,查一下资料,许多还真是程序员的事情,下面总结一下,希望对大家有所帮助。方面以影响程度排序 D1 业务逻辑 (影响最大) D2 数据设计 (表结构设计,数据建模) D3 应用程序设计 (SQL 语句的写法) D4 数据库的逻辑结构 (索引,区间,段,表空间) D5 数据库操作 (参数和配置) D6 访问路...原创 2013-04-19 14:37:52 · 103 阅读 · 0 评论 -
数据库调优的方法
源于http://www.51testing.com/html/60/n-219560.html 1.引言 数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素。将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能;适当程度的非规范化可以改善 系统查询性能;建立索引和编写高效的SQL 语句能有效避免低性能操作;通过锁的调优解 决并发控制方面的性能问题。...原创 2013-04-19 11:48:42 · 117 阅读 · 0 评论 -
Java volatile和 transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对...原创 2013-03-24 17:10:09 · 99 阅读 · 0 评论 -
关于hashcode与equal函数
hashcode:独一无二地代表了一个对象,并且通过hashcode可以找到这个对象。(比价不准确的说法)在java.lang.Object的规范中,对hasCode有如下的约定: 1 在一个应用程序执行期间,如果一个对象的equals方法做比较所用到的信息没有被修改的话,那么对该对象调用多次hashCode方法,它必须返回相同的整数。在同一程序的多次执行过程中,这个整数方法可以不同...原创 2013-03-22 16:26:24 · 97 阅读 · 0 评论 -
SynchronizedMap和ConcurrentHashMap的深入分析
在开始之前,先介绍下Map是什么?javadoc中对Map的解释如下:An object that maps keys to values . A map cannot contain duplicate keys; each key can map to at most one value.This interface takes the place of the Dictiona...原创 2013-03-22 15:56:01 · 89 阅读 · 0 评论 -
面试题集锦及参考答案
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?参考答案:String,StringBuffer, StringBuilder 的区别 二、VECTOR,ARRAYLIST, LINKEDLIST的区别是什么? 参考答案:ArrayList,LinkedList,Vestor区别 三、HASHTABLE, HASHMAP,Tre...原创 2013-03-22 15:44:35 · 104 阅读 · 0 评论 -
稳定排序和不稳定排序
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当 然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳 定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个...原创 2013-03-21 16:36:45 · 94 阅读 · 0 评论 -
JAVA类的初始化顺序(静态变量,静态模块,变量,模块,构造器)
package com.luke.java;/** *@descripton *@author luke *@time 2012-7-20:下午02:13:27 *@version */public class ClassA{ /** *...原创 2012-07-20 14:58:16 · 179 阅读 · 0 评论 -
SQL面试题之guoup,sum复杂用法
1 。SQL语句面试题关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果, 该如何写sql语句? 胜 负 2005-05-09 2 2 2005-05-10 1 2 ------------...原创 2013-03-05 00:40:54 · 235 阅读 · 0 评论 -
Java常见笔试面试题目解析(十):Java中检查的异常与未检查的异常
Java代码 public class ExceptionTypeTest { public void doSomething()throws ArithmeticException{ System.out.println(); } public ...原创 2012-10-24 11:04:51 · 116 阅读 · 0 评论 -
set,map,list之间有什么区别和共同点
list --其中的值允许重复,因为其为有序的数据结构 ,允许空值set --其中的值不允许重复,无序的数据结构 map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)HashSet集合(不允许重复元素,允许空值): 被比较的对象要重写hashCode()方法和重写equals()方法, 两个都要。TreeSet集合.(不允许重复元素) 方...原创 2012-05-24 17:41:54 · 1123 阅读 · 0 评论