zoukankan      html  css  js  c++  java
  • Java面试之基础

    1. JDK常用包
      • java.lang:存放系统的基础类,比如:String、Math、Integer和Thread等,提供常用功能
      • java.io:存放与输入输出有关的类
      • java.net:存放与网络有关的类,比如URL、URLConnection等
      • java.util:存放系统辅助类,特别是集合类
      • java.sql:存放数据库操作有关的类,比如:Connection、ResultSet、Statement等
    2. get和post的区别
      • get从服务器获取数据,post是向服务器传送数据
      • get传送的数据量较小,不能大于2kb,post传送数据量较大,默认无限制
      • get安全性低,post安全性高,但get执行效率高于post
      • 执行文件上传时只有用post 
    3. java多态的具体体现
      • 面向对象的四个特征:抽象、继承、封装、多态
      • 多态的四种体现:
        • 接口和接口的继承
        • 类和类的继承
        • 重载
        • 重写
      • 重载:发生在同一个类中,多个方法名一致,但参数类型和参数个数不一致,则该方法被重载了
      • 重写:发生在子类继承父类的关系中,子类继承父类方法,方法名、参数、返回值类型一致,但方法体不一致,则该方法被重写了
    4. Hashtable和HashMap区别
      • Hashtable和HashMap都是Map的实现
      • Hashtable是线程安全的,HashMap是线程非安全的
      • Hashtable不允许有空(null)的键值对,而HashMap允许
      • HashMap的效率高于Hashtable
    5. 九大隐式对象
      • 输入输出对象:request、response、out
      • 作用域通信对象:session、application、pageContext
      • Servlet对象:page、config
      • 错误对象:exception
    6. List和Set
      • List和Set都继承于Collection接口,List是一个有序可重复的集合,Set是一个无序不可重复的集合
      • List接口实现类有ArrayList、LinkedList、Vector。
        • ArrayList和Vector是基于数组实现的,所以查询快,增删慢(Vector是线程安全的,所以查询效率低于ArrayList)。
        • LinkedList是基于链式存储结构,所以查询慢,增删快。
      • Set接口实现类有HashSet,LinkedHashSet,TreeSet。
        • HashSet是无序不可重复的,顺序可能变化,元素可以为null,但只能有一个null
        • LinkedHashSet按放入顺序有序不可重复的
        • TreeSet默认以自然排序方式排序,还有定制排序。存放的为同一个类的对象,不允许为null
    7. 冒泡排序
      public class Sort {
      	public static void sort() {
      		Scanner input = new Scanner(System.in);
      		int sort[] = new int[10];
      		int temp;
      		System.out.println("请输入10个排序的数据:");
      		for (int i = 0; i < sort.length; i++) {
      			sort[i] = input.nextInt();
      		}
      		for (int i = 0; i < sort.length - 1; i++) {
      			for (int j = 0; j < sort.length - i - 1; j++) 			{
      				if (sort[j] < sort[j + 1]) {
      					temp = sort[j];
      					sort[j] = sort[j + 1];
      					sort[j + 1] = temp;
      				}
      			}
      		}
      		System.out.println("排列后的顺序为:");
      		for(int i=0;i<sort.length;i++){
      			System.out.print(sort[i]+"   ");
      		}
      	}
      	public static void main(String[] args) {
      		sort();
      	}
      }
      
    8. 实现线程的两种方式
      • 继承Thread类:重写run()方法,调用start()开启线程
      • 实现Runnable接口:实现run()方法,调用start()开启线程
    9. jvm内存结构
      • 堆(heap):存放对象的实例,即new出来的对象
      • 栈(stack):存放基本数据类型和引用数据类型的地址
    10. 单例设计模式23种设计模式详解):私有化的构造函数、私有静态全局变量、公有静态方法
      • 恶汉式:线程安全
        public class Singleton1 {
              private Singleton1() {};
              private static Singleton1 single = new Singleton1();
              public static Singleton1 getInstance() {
                  return single;
             }
         }
        
      • 赖汉式:线程不安全
        public class Singleton2 {
              private Singleton2() {}
              private static Singleton2 single=null;
              public static Singleton2 getInstance() {
                   if (single == null) {  
                      single = new Singleton2();
                  }  
                 return single;
             }
         }
        
        • 线程安全:
          public class Singleton3 {   
              private static class LazyHolder {   
                private static final Singleton3 INSTANCE = new Singleton3();   
              }   
              private Singleton3 (){}   
              public static final Singleton3 getInstance() {   
                  return LazyHolder.INSTANCE;   
              }    
          
          }
          
    11. error和exception
      • error:程序无法处理的错误,发生错误时jvm一般会选择线程终止
      • exception:程序本身可以处理的异常
        • 运行期异常:
          • ArithmeticException:数学计算异常
          • NullPointerException:空指针异常
          • ArrayOutOfBoundsException:数组索引越界异常
          • ClassNotFoundException:类文件未找到异常
          • ClassCastException:类型转换异常
        • 编译期异常:
          • EOFException: 文件结束异常
          • FileNotFoundException:找不到文件异常

      

    作者:idanyang

    出处:http://www.cnblogs.com/idanyang/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    ubuntu升级显卡驱动
    __slots__属性,声明实力属性名字列表
    isinstance 与 type 的区别
    conda使用技巧
    卷积神经网络参数
    apache nginx php不显示版本号
    30个实用的Linux find命令示例
    账号的管理的那点事
    Linux 命令整理 —— 基本操作
    Linux 命令整理 —— 用户管理
  • 原文地址:https://www.cnblogs.com/idanyang/p/6403861.html
Copyright © 2011-2022 走看看