Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

JAVA 综合面试题 PDF 下载


分享到:
时间:2020-08-13 09:51来源:http://www.java1234.com 作者:小锋  侵权举报
JAVA 综合面试题 PDF 下载
失效链接处理
JAVA 综合面试题 PDF 下载



本站整理下载:
提取码:lru9 
 
 
相关截图:
 
主要内容:

Java面试题整理
Java面向对象
1. super()与this()的区别?
This():当前类的对象,super父类对象。Super():在子类访问父类的成员和行为,
必须受类继承规则的约束而this他代表当前对象,当然所有的资源都可以访问. 在构
造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数
的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化
构造.而this就没有这个要求,因为它本身就进行实例化的构造. 而在方法中super和
this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源. 
2. 作用域public,protected,private,以及不写时的区别?
Public:不同包、同一包、类内都可用
Private:类内
Protected: 不同包的子类、同一包、类内都可用
不写时:同一包内、类内
3. 编程输出如下图形。
* * * * *
* * * *
* * *
* * 
*
代码如下:
public class Print { 
public static void main(String[] args) { 
for (int i = 0; i < 5; i++) { 
for (int j = 5; j > i; j--) { 
System.out.print("*"); 
}
System.out.println(); 
} }
4. JAVA的事件委托机制和垃圾回收机制
java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。
在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听
器将处理这个事件,然后返回。垃圾回收机制垃圾收集是将分配给对象但不再使用
的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次
对象适合进行垃圾回收
5. 在JAVA中,如何跳出当前的多重嵌套循环?
用break; return 方法。
6. 什么是java序列化,如何实现java序列化?(写一个实例) 
序列化: 处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流
化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解
决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类
实现Serializable接口,该接口没有需要实现的方法,implements Serializable
只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)
来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对
象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),
要恢复的话则用输入流。
7. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以。如果这个类的修饰符是public,其类名与文件名必须相同。
8. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序?
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快
速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、
基数排序)快速排序的伪代码。
package com.njzb.test.student.tb;
import java.util.Random;
public class MySort {
private int []myArray;
private int size;
public MySort(int size){
myArray = new int[size];
this.size =size;
init();
}
private void init(){
Random rand=new Random();
for(int i=0;i<size;i++){
myArray[i]=rand.nextInt(1000);
} }
public void quick(int low,int high){//快速排序
int lo=low;//最小值
int hi=high;//最大值
if(lo>=hi){return;}
boolean flag= false;
while(lo<hi){
if(myArray[lo]<myArray[hi]){
int temp= myArray[lo];
myArray[lo]=myArray[hi];
myArray[hi]=temp;
flag=!flag;
}
if(flag){
lo++;
}else{
hi--; } }
lo--;hi++;
quick(low,lo);
quick(hi,high);
}
public void pop(){//冒泡排序
for (int i=0;i<size;i++){
for(int j=0;j<size-i-1;j++){
if(myArray[j]<=myArray[j+1]){
int temp = myArray[j];
myArray[j] = myArray[j+1];
myArray[j+1]=temp;
} } } }
public void opt(){//选择排序
for(int i=0;i<size;i++){
int max=i;
for (int j=i+1;j<size;j++){
if(myArray[max]<myArray[j]){
max=j;
} }
int temp = myArray[max];
myArray[max] = myArray[i];
myArray[i]=temp;
} }
public void insert(){//插入排序
for(int i=1;i<size;i++){
int temp = myArray[i];
int pos = i-1;
//下标大于0并且你的temp比pos的值大
while(pos>=0 && temp>myArray[pos]){
myArray[pos+1]=myArray[pos];
pos--; }
myArray[pos+1]=temp;
} }
public void dis(){
for (int i:myArray){
System.out.print(i+":");
}
System.out.println();
}
public void disss(int month){
if(month<=12){
System.out.println(month);
disss(++month);
} }
public static void main(String[] args) {
MySort ms = new MySort(10);
// ms.disss(1);
ms.dis();
// long time =System.currentTimeMillis();
// ms.insert();
//ms.pop();
//ms.opt();
ms.quick(0, 9);
// System.out.println(System.currentTimeMillis()-time);
ms.dis();
} }

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐