java基础面试题总结
1.局部变量在使用的时候必须已经被初始化
2.byte b=2,e=3
byte c=b+c; 会编译不通过,应为b+c会自动 类型提升位int 如果想得到 byte c 必须强制转型 byte c=(byte)b+c;
3.final、finally、finalize三者区别
final用来修饰成员变量、方法、或者一个类,修饰变量的时候表示该变量不可以在修改、修饰方法的时候表示该方法不可以被子类重写、
修饰类的时候表示该类不允许被继承是一个叶子类。finally是对异常处理的最佳补充,无论有无异常都会执行finally。finalize是jvm保证在调用该方法之前,该对象是不可到达的,及将要进行垃圾回收。但jvm不保证一定调用该函数。
4.什么事反射,反射的定义
反射的感念主要是指程序可以访问,检测和修改它本身状态和行为的一种能力。
5.说有引用本质上都是按值传递的,只不过对象参数传送的是引用而已。String对象特殊
例子
public static void main(String[] args) {
// TODO Auto-generated method stub
String aa="似懂,非懂,是发的,说,法,是";
dealstr(aa);
System.out.println(aa);
}
public static void dealstr(String str){
str.replaceAll(",", "_");
}
输出结果会是"似懂,非懂,是发的,说,法,是
6.静态变量只能用在方法、成员变量、内部类
7.wait() 和sleep的区别
sleep是让线程停止一段时间,在sleep结束后,线程不一定立即回复执行。这是因为 在那个时刻,其他的线程可能正在运行而且没有被调度成放弃执行。除非醒来的线程优先级最高。或者其他的正在运行线程发生堵塞。如果对一个线程发出wait命令,被调对象进入等待状态,除非被欢迎或者时间到。
8为什么stop()和supspend()方法,不推荐使用
主要因为stop不安全,他会解除由线程获取的全部锁定,supspend使用的时候目标线程会停下来,但却仍然持有在这之前或得全部锁定,如果其他线程试图恢复目标线程或解锁就会照成死锁
9,数据库优化
1.简历索引,2,建立分区,3,尽量使用固定长度字符串,4,限制字段长度。
相关文档:
JAVA相关基础知识
1、面向对象的特征有哪些方面
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层 ......
采用欲扬先抑的手法谈谈java:
java没有指针只有引用是最大的败笔.正因为没有指针,很多操作要迂回婉转;垃圾收集机制也觉得是鸡肋,写个析构函数真的那么复杂吗, 有必要牺牲灵活性吗;函数调用的代价之高让人抓狂
但我还是选择了她:
java的纯面向对象特 ......
近期有个小CMS项目,由于服务器、人员以及管理制度等一系列问题,不得不采用Java Web+Access这种不伦不类的组合进行开发,期间遇到了一个小问题,那就是文章内容采用Access的“备注”类型存取时,发生自动截断的问题。也就是说,存进去10000字的文章,只能显示出3000 ......
/*
*日期:2010-04-18 11:37
*开发者:heroyan
*联系方式:zndxysf@126.com
*功能:无向图最小生成树Prim算法实现案例
*/
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class SpanningTree{
private static int MAX = 100;
private double cost[][] = new doubl ......
JNI工作原理
在JNI中,本地函数是通过一个独立的.c或.cpp文件来实现的(C++为JNI提供的界面会更简洁一些)。当JVM调用该函数时,它传递了一个JNIEnv指针、一个jobject指针和通过Java方法定义的Java参数,JNI函数的形式如下:
JNIEXPORT void JNICALL Java_ClassName_MethodName
(JNIEnv *env, jobjectobj)
{
......