java基础知识点 java基础知识点面试


java基础知识点 java基础知识点面试

文章插图
一、JDK常用的包java.lang: 这个是系统的基础类 , 比如String、Math、Integer、System和Thread, 提供常用功能 。java.io: 这里面是所有输入输出有关的类 , 比如文件操作等java.net: 这里面是与网络有关的类,比如URL,URLConnection等 。java.util : 这个是系统辅助类 , 特别是集合类Collection,List,Map等 。java.sql: 这个是数据库操作的类,Connection, Statememt,ResultSet等二、Get和Post的区别1.get是从服务器上获取数据 , post是向服务器传送数据,2.get传送的数据量较小,不能大于2KB 。post传送的数据量较大,一般被默认为不受限制 。3.get安全性非常低,post安全性较高 。但是执行效率却比Post方法好 。4.在进行文件上传时只能使用post而不能是get 。三、Java多态的具体体现面向对象编程有四个特征:抽象,封装 , 继承,多态 。多态有四种体现形式:接口和接口的继承 。
类和类的继承 。
重载 。
重写 。
其中重载和重写为核心 。
重载:重载发生在同一个类中,在该类中如果存在多个同名方
法 , 但是方法的参数类型和个数不一样,那么说明该方法被重
载了 。
重写:重写发生在子类继承父类的关系中,父类中的方法被子类继承 , 方法名,返回值类型 , 参数完全一样,但是方法体不一样,那么说明父类中的该方法被子类重写了 。四、StringBuffer StringBuilder String 区别String 字符串常量 不可变 使用字符串拼接时是不同的2个空间StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加StringBuilder 字符串变量 可变 非线程安全 字符串拼接直接在字符串后追加1.StringBuilder执行效率高于StringBuffer高于String.2.String是一个常量,是不可变的 , 所以对于每一次+=赋值都会创建一个新的对象,StringBuffer和StringBuilder都是可变的,当进行字符串拼接时采用append方 法,在原来的基础上进行追加,所以性能比String要高,又因为StringBuffer 是 线程安全的而StringBuilder是线程非安全的,所以StringBuilder的效率高于 StringBuffer.3.对于大数据量的字符串的拼接,采用StringBuffer,StringBuilder.五、Hashtable与HashMap的区别HashMap不是线程安全的,HashTable是线程安全 。HashMap允许空(null)的键和值(key) , HashTable则不允许 。HashMap性能优于Hashtable 。Map1.Map是一个以键值对存储的接口 。Map下有两个具体的实现 , 分别是HashMap和HashTable.2.HashMap是线程非安全的 , HashTable是线程安全的,所以HashMap的效率高于HashTable.3.HashMap允许键或值为空 , 而HashTable不允许键或值为空.六、九大隐式对象输入/输出对象: request response out作用域通信对象: session application pageContextServlet 对象: page config错误对象: exception七、Forword(请求转发)与Redirect(重定向)1、从数据共享上Forword是一个请求的延续,可以共享request的数据Redirect开启一个新的请求,不可以共享request的数据2、从地址栏Forword转发地址栏不发生变化Redirect转发地址栏发生变化八、JQurey总结jquery是一个轻量级的js框架,具有跨浏览器的特性,兼容性好,并且封装了很多工具,方便使用 。常用的有: 选择器,dom操作  , ajax(ajax不能跨域),特效,工具类九、XML和Json的特点Xml特点:1、有且只有一个根节点;2、数据传输的载体3、所有的标签都需要自定义4、是纯文本文件Json(JavaScript Object Notation)特点:json分为两种格式:json对象(就是在{}中存储键值对,键和值之间用冒号分隔,键 值 对之间用逗号分隔);json数组(就是[]中存储多个json对象 , json对象之间用逗号分隔)(两者间可以进行相互嵌套)数据传输的载体之一区别:传输同样格式的数据,xml需要使用更多的字符进行描述,流行的是基于json的数据传输 。xml的层次结构比json更清晰 。共同点:xml和json都是数据传输的载体,并且具有跨平台跨语言的特性 。十、request.getSession()、reqeust.getSession(false)和 request.getSession(true)getSession()/getSession(true):当session存在时返回该session , 否则新建一个 session并返回该对象getSession(false):当session存在时返回该session,否则返回null十一、Page和PageContext的区别Page是servlet对象;使用this关键字,它的作用范围是在同一页面 。PageContext是作用域通信对象;通常使用setAttribute()和getAttribute()来设置和获取存放对象的值 。十二、Ajax总结AJAX 全称: 异步JavaScript及 XML(Asynchronous JavaScript And XML)Ajax的核心是JavaScript对象XmlHttpRequest(XHR) 。Ajax的优点:提高用户体验度(UE)提高应用程序的性能进行局部刷新AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术 。2. 通过 AJAX,我们的 JavaScript 可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信 。通过这个对象,我们的 JavaScript 可在不重载页面的情况与Web服务器交换数据,即可局部刷新 。3. AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息 , 而不是整个页面 , 减轻服务器的负担,提升站点的性能 。AJAX 可使因特网应用程序更小、更快 , 更友好,用户体验(UE)好 。5. Ajax是基于标准化并被广泛支持的技术,并且不需要插件和下载小程序十三、JSP9大隐视对象中四个作用域的大小与作用范围四个作用域从大到?。篴ppliaction>session>request>pageapplication:全局作用范围 , 整个应用程序共享.生命周期为:应用程序启动到停止 。session:会话作用域,当用户首次访问时,产生一个新的会话 , 以后服务器就可以记 住这个会话状态 。request:请求作用域 , 就是客户端的一次请求 。page:一个JSP页面 。以上作用范围使越来越?。?request和page的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page页(include , forward) 。十四、List,Set,Collection,Collections1.List和Set都是接口 , 他们都继承于接口Collection,List是一个有序的可重复的集合 , 而Set的无序的不可重复的集合 。Collection是集合的顶层接口,Collections是一个封装了众多关于集合操作的静态方法的工具类,因为构造方法是私有的 , 所以不能实例化 。2.List接口实现类有ArrayList,LinkedList,Vector 。ArrayList和Vector是基于数组实现的,所以查询的时候速度快 , 而在进行增加和删除的时候速度较慢LinkedList是基于链式存储结构,所以在进行查询的时候速度较慢但在进行增加和删除的时候速度较快 。又因为Vector是线程安全的,所以他和ArrayList相比而言,查询效率要低 。十五、java的基本数据类型数据类型 大小byte(字节) 1(8位)shot(短整型) 2(16位)int(整型) 4(32位)long(长整型) 8(32位)float(浮点型) 4(32位)double(双精度) 8(64位)char(字符型) 2(16位)boolean(布尔型) 1位附加:String是基本数据类型吗?(String不是基本数据类型)String的长度是多少,有限制?(长度受内存大小的影响)十六、冒泡排序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

推荐阅读