大厂建议新人看的基础java面试题

本文详细讲解了Java中日期的获取、格式化、内存泄漏的预防、多态机制以及常用类库的操作,包括Calendar、Date、垃圾回收、集合与字符串编码转换等关键知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

26、如何取得年月日,小时分秒?

Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,2004);c.set(Calendar.MONTH,0);c.set(Calendar.DAY_OF_MONTH,31); System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));

27、如何取得从 1970 年到现在的毫秒数

Java.util.Date dat=new Date();long now=dat.getTime();

28、如何获取某个日期是当月的最后一天?

当前日期加一天,若当前日期与结果的月份不相同,就是最后一天。取下一个月的第一天,下一个月的第一天-1

public static void main(String[] args){c.set(Calendar.DAY_OF_MONTH,30);Calendar c1=(Calendar)c.clone();System.out.println(c.get(Calendar.YEAR)+"c.add(Calendar.DAY_OF_MONTH,1); if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH))System.out.println("是最后一天");}elseSystem.out.println("不是取后一天");

29、如何格式化日期?

Import java.text. SimpleDateFormat;SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");Date dat=new Date();//把日期转化为字符串String str=sdf.format(dat);System.out.println(str);//将字符串转化为日期Java.util.Date d1=sdf.parse(“yyyy-mm-dd”);

30、编码转换,怎样实现将 GB2312 编码的字符串转换为ISO-8859-1 编码的字符串。

String a=new String("中".getBytes("gb2312"),"iso-8859-1");String a=new String("中".getBytes("iso-8859-1"));

32、String s = new String("xyz");创建了几个 String Object?

New 了一个,”XYZ”本来又是一个两个

33、float 型float f=3.4 是否正确?

报错,应当是 float f=3.4f

如果是 float f=3(整数)正确

35、说出一些常用的类,包,接口,请各举 5 个。常用的类: BufferedReader BufferedWriter FileReader FileWirter String Integer

常用的 包: java.lang java.awt java.io java.util java.sql javax.xml

javax.sevlet javax.ejb. java.net javax.faces

常用的接口: List Map Document NodeList EjbObject EjbHome SessionBean EntityBean

36、java 中会存在内存泄漏吗,请简单描述。

会。如:int i,i2; return (i-i2); //when i 为足够大的正数,i2 为足够大的负数。结果会造成溢位,导致错误。

37、java 中实现多态的机制是什么?

静态的多态:方法名相同,参数个数或类型不相同。(overloading) 动态的多态:

子类覆盖父类的方法,将子类的实例传与父类的引用调用的是子类的方法实现接口的实例传与接口的引用调用的实现类的方法。

38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法 主动通知虚拟机进行垃圾回收?

动态内存

存放类实例静态内存

类本身

垃圾收集主要针对的是动态内存,一般当内存不够用时会进行垃圾收集。或通过System.gc()手动收集,但不保证一定执行。

39、静态变量和实例变量的区别?

static i = 10; //常量

class A a; a.i =10;//可变静态方法可以调用静态变量。

实现方法可以调用静态变量、实例变量

41、是否可以从一个 static 方法内部发出对非static 方法的调用?

不可以,如果其中包含对象的method();不能保证对象初始化.

42、写 clone()方法时,通常都有一行代码,是什么?

Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。

43、JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?

Try:执行部分,产生异常Catch:捕捉异常

Finally:不管有没有异常都执行

Throws:在方法声明处声明要抛出的异常,调用者必须对其进行处理。Throw:抛出一个异常

44、在 try 块中可以抛出异常吗?

在 try 中可以抛出异常,一般与声明的异常相同。自定义异常要继承于 Exception 或 Exception 的子类

45、冒泡排序法

//相邻两个数比较,将最小或最大的放到后面,最后面数的不参与比较public class BubbleSort {private static int al[] = new int[10];public BubbleSort() {al[0]=2;al[1]=3;al[2]=23;al[3]=45;al[4]=1;al[5]=67;al[6]=23;al[7]=80;al[8]=35;al[9]=72;public static void main(String[] args) { BubbleSort bs = new BubbleSort();System.out.println("排序前:");display(al);for(int i=0;i<al.length;i++) {for (int j = 0; j < al.length-i-1; j++) {if(al[j]>al[j+1]) {swap(j,j+1);System.out.println(); System.out.println("排序后:"); display(al);private static void display(int[] al2) {for (int i = 0; i < al2.length; i++) { System.out.print(al2[i]+" ");private static void swap(int i, int j) {int temp = al[i]; al[i]= al[j]; al[j] = temp;

46、String and StringBuffer 的区别?

String:长度给定不可变,当多个字符串联合时要先转为StringBuffer,再联合, 速度慢。

StringBuffer:长度可变,可以将多个字符串值直接联合,效率高

47、用 java 代码编写堆栈?

public class Stack {int[] data; int maxSize; int top;public Stack(int maxSize) { this.maxSize = maxSize;data = new int[maxSize]; top = -1;/*** 依次加入数据* @param data 要加入的数据* @return 添加是否成功*/public boolean push(int data) {if(top+1== maxSize) { System.out.println("栈已满!"); return false;this.data[++top] = data;return true;* 从栈中取出数据* @return 取出的数据public int pop() throws Exception{if(top==-1) {throw new Exception("栈已空!");return this.data[top--];public static void main(String[] args) throws Exception { Stack stack=new Stack(1000);stack.push(1);stack.push(2); stack.push(3); stack.push(4); stack.push(5); while(stack.top>=0)System.out.println(stack.pop());

48、集合的作用是什么?

数据的传送 增、删、改、查、constainsAll,可以存放不同类型的对象。

49、集合的通用方法有哪些?通用方法是什么(操作)?

集合List 的遍历方法有: Iterator: EnumerationFor Get setCollection 的通用方法有: Iterator()Add()Clear();remove()

50、说出 ArrayList,Vector, LinkedList 的存储性能和特性 HashMap 和Hashtable 的区别?

ArrayList Vector:以数组的方式存储,增、删慢,查、改快ArrayList:线程不安全,速度快

Vector:线程安全,速度慢(synchoronized) LikedList: 以单链表的方式存储,增、删快,查、改慢

HashMap 与Hashtable 都实现的Map 接口,HashTable 线程安全,HashMap 线程不安全。

51、Collection 和 Collections 的区别。

Collection 是集合的根接口,其下有set 及list Collections 是集合的算法。

52、Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains 来区分是否有重复的对象。还是都不用。

在比较时先调用 hashCode 方法,如果不相同,证明不相等。

如果相同,再调用 equals 方法,如果 equals 方法相同,证明相等,不相同,证明不相等。

==:主要用在基本数据类型及引用Equals:主要是对象或对象引用的比较。

集合中是否包含某一个元素用 contains 来判断。

53、List, Set, Map 是否继承自 Collection 接口?

List,set 继承于 Collection

Map 没有继承于 Collection,其相对是独立的。

属于Collection 类型的对象,可以通过构造函数将一个集合构造成另外一个集合

54、面向对象的特征有哪些方面?

1.抽象:

找共性,将共有的属性、方法放到父类中2.继承:

子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。3.封装:

一个类包括多个属性及方法。

4. 多态性:

动态:

静态:

55、String 是最基本的数据类型吗?

基本数据类型包括byte、int、char、long、float、double、boolean 和short。

java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer 类

56、int 和 Integer 有什么区别?

Int 是基本数据类型,不是对象,占一个内存空间,没有方法。与其同类的有

long,char,doble

Integer 是封装类,具有方法及属性。与其同类的有 Long,Double.Float

57、运行时异常与一般异常有何异同?

运行时异常:java JVM 抛出的异常,代码中不用处理。

一般异常:用户抛出的异常,如果用 throws 声明了,调用这个方法的代码必须对其处理。

58、&和&&的区别?

&:与: 左边若为 false 右边还执行。

&&:短路与,左边若为false 右边不执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

maxiao112

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值