在网上看到的关于Java的知识总结,觉得很受用,分享给大家。。。。。

如果有什么错误,也欢迎指正批评。

1 简述下java基本数据类型及所占位数,java基本数据类型:4类8

整数类型:byte(1byte),short(2byte),int(4byte),long(8byte)

浮点类型:float(4byte),double(8byte)

字符类型:char(2byte)

逻辑类型:boolean(false/true 1byte)

2 说出5个启动时异常

RunTimeException

------NullPointerException

------ArrayIndexOutOfBoundsException

------ClassCastException

------NumberFormatException

3 HashMap 和HashTable的区别:

1HashMap 允许空键值对,HashTable不允许

2HashMap不是线程安全的,HashTable是

3HashMap直接实现Map接口,HashTable继承Dictionary类

4.ArrayList,Vector,LinkedList存储性能和区别

它们都实现了List接口

ArrayList和Vector都是基于数组实现的

LinkedList基于双向循环链表(查找效率低,添加删除容易)

ArrayList不是线程安全的而Vector是线程安全的,所有速度上ArrayList高于Vector

5.Collection和Collections的区别

Collection是集合类的上级接口,继承与他的接口主要有Set和List

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜     索、排序、线程安全等操作。

6 List、Map、Set三个接口,存取元素时,各有什么特点?

List以特定次序来持有元素,可有重复元素。

Set 无法持有重复元素,内部排序

Map保存key-value值,value可多值。

7 final,finally,finalize的区别

Final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承

Finally 是异常处理语句结构的一部分,表示总是执行

Finalize 是Object类的一个方法,在垃圾收集时的其他资源回收,例如关闭文件等。

8 Overload和Override的区别。Overload的方法是否可以改变返回值的类型?

方法的重写Override和重载Overload是Java多态的不同表现。

重写Overriding是父类与子类之间多态的一种表现,方法名,参数列表返回值类型都得与父类的方法一直。

重载Overloading是一种类中多态的一种表现。重载的方法是可以改变返回值类型的。

9用一句话总结一下冒泡排序

依次比较相邻的两个数,将小数放在前面,大数放在后面。

10 实现线程安全的两种方式

1)synchronized方法:通过在方法声明加入synchronized关键字来声明synchronized方法

2)Synchronized块:通过synchronized关键字来声明synchronized快

11 说一下"=="和equal()方法在字符串变量操作中的不同?

"=="比较的是两个字符串对象的地址,equal() 是比较两个字符串的具体值

12 sleep和wait方法有什么区别

Sleep是线程(Thread)的方法,导致此线程暂停执行指定时间,把执行机会给其他线程,但是监控状态依然保持,到时会自动恢复。调用sleep不会释放对象锁。

Wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象进入运行状态。

13 &和&&的区别

&位运算符:非短路运算符,它会把所有条件执行完毕之后,才会返回结果

&&逻辑运算(and):短路运算符,遇到不符合条件,立即终止程序的执行

14 error和exception的区别

Error:表示恢复是不可能的一种严重的问题,比如:内存溢出,不指望程序处理

Exception 程序运行时的异常,如果程序设计合理不会出现的情况

15请说出你锁知道的线程同步的方法

Wait():使一个线程处于等待状态,并且释放所有持有的对象的lock;

Sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常;

Notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

notityAll():唤醒所有处于等待状态的线程,注意不是给所有唤醒线程一个对象的锁,而是让它们竞争。

16.网络编程中涉及并发服务器,使用多进程和多线程,请问有什么区别?

1)进程:子进程是父进程的复制品子进程获得父进程数据空间堆和栈的复制品

2)线程:相对于进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他进程共享数据,但拥有自己的栈空间,拥有独立的执行序列

两者都可以提高程序的并度,提高程序运行效率和响应时间。

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

17 什么是反射?

在运行过程中:

1对于任意一个类,可以知道这个类的属性和方法。

2对于任意一个对象,可以调用这个对象的任意方法。

对于这种动态获取的信息,以及动态调用对象方法的功能成为反射。

Java反射机制提供的功能

1运行时判断任意对象的所属类

2运行时构造任意类的对象

3运行时判断和调用对象的成员变量和方法

4生成动态代理

18 线程的基本概念、线程的本状态及状态之间的关系

新建(Born)新建的线程处于新建状态

就绪(Ready)在创建线程后,它将处于就绪状态,等待start()方法被调用

运行(Running)线程在开始执行时进入运行状态

睡眠(Sleeping)线程的执行可通过sleep()方法来暂时中止。在睡眠后,线程将进入就绪状态

等待(Waiting):如果调用了wait()方法,线程将处于等待状态。用于在两个或多个线程并发运行时。

挂起(Suspended)在临时停止或中断线程的执行时,线程就处于挂起状态 。

阻塞(Blocked)在线程等待一个事件时(例如输入/输出操作),就称处于阻塞状态

死亡(Dead)在run()方法已经执行或其stop()方法被调用之后,线程就处于死亡状态

19 描述下JVM加载class文件的原理机制

JVM中类的装载是由ClassLoader和它的子类来实现的java ClassLoader是一个重要的java运行时系统组件。它负责在运行时查找和装入类文件的类。

20什么是触发器和存储过程

触发器是存储在数据库中的块,这个块一旦被构造后,就可以多次执行,当触发它的事件发生时调用该触发器。触发事件是指对表中数据的操作,如插入、删除和修改。

存储过程是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。我的理解就是一堆sql的集合,可以建立非常复杂的查询,编译运行,所以运行一次后,以后再运行速度比单独执行 SQL快很多

21什么是回调函数

某个程序S(Student.main)调用服务程序A(Arrays)中的某个方法(sort),服务程序A的sort方法在某个时候反过来调用S的某个方法(compareTo),这种情况下,compare叫做S的回调方法。

例如:public class Student implements Compareble{

Private int id;

Private String name;

Private int age;

Private int score;

//构造器

//getter/setter方法

//回调方法

Public int compareTo(Object obj){

Return

This.id-((Student)obj).id;

}

}

Student s1 = new Student(1,"a",18,89);

Student s2 = new Student(2,"a",18,89);

Student s3 = new Student(3,"a",18,89);

Student [] arrs = {s1,s2,s3};

Arrays.sort(arrs);

22 遍历文件夹下所有.java的文件?

Public void listFiles(String path){

File dir = new File(path);

Files []  files = dir.listFiles(new FileFilter(){

Public boolean accept(File f){

Return f.getName().endWith(".java");

}

});

For(File file:files){

System.out.print(file.getName());

}

}

Java知识总结--CoreJava的更多相关文章

  1. Java知识体系

    Java知识体系 java知识结构.jpg web框架.jpg 计算机课程体系.png 2016-08-19_090929.png 流行的哈希算法生存状况.jpg "JAVA之父" ...

  2. Android开发学习必备的java知识

    Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语 ...

  3. Java知识体系纲要

    最近一段时间,把Java主要涉及到的大概念都大致学习了一遍,为了让自己能够更好地形成对Java知识体系的整体把握,先把学过的知识点添加到自己画的思维导图上. 整个Java知识体系的划分,我自己主要将它 ...

  4. 震惊!90%的程序员不知道的Java知识!

    震惊!90%的程序员不知道的Java知识! 初学Java的时候都会接触的代码 public static void main(String[] args){ ... } 当时就像背公式一样把这行代码给 ...

  5. 实现网络数据提取你需要哪些java知识

    本篇对一些常用的java知识做一个整合,三大特性.IO操作.线程处理.类集处理,目的在于能用这些只是实现一个网页爬虫的功能. Ⅰ 首先对于一个java开发的项目有一个整体性的了解认知,项目开发流程: ...

  6. Java知识回顾 (1) 编译环境与基本变量类型

    参考资料 runoob Java知识回顾序列的相关资料,主要来自 runoob,并对其中的知识进行概况或总结,去除对一个之前了解过Java的人员无关的知识点.以便能够使得一个新手,或之前有Java经验 ...

  7. Java知识集锦

    Java知识集锦 一.Java程序基础 1.1 开发和运行环境 1.2 Java语言概述 二.Java语法基础 2.1 基础类型和语法 2.2 对象和类型 2.3 包和访问控制 三.数据类型及类型转换 ...

  8. java在线聊天项目 实现基本聊天功能后补充的其他功能详细需求分析 及所需要掌握的Java知识基础 SWT的激活方法,swt开发包下载,及破解激活码

    补充聊天项目功能,做如下需求分析: 梳理项目开发所需的必要Java知识基础 GUI将使用更快速的swt实现 SWT(Standard Widget Toolkit) Standard Widget T ...

  9. 高级Java知识

    高级Java知识(JVM.字节码.内存模型) 内存=方法区+栈空间+堆+程序计数器 栈(stack)包括虚拟机栈(VM stack)和本地方法栈(native method stack). 方法区(m ...

随机推荐

  1. myeclipse和eclipse安装Java反编译插件

    为myeclipse和eclipse安装Java反编译插件    插件所需包 1.解压jad1.5.8g.zip.将jad.exe放到jre的bin目录下,下载地址: http://ishare.ia ...

  2. EasyUI基础入门之Easyloader(载入器)

    在了解完easyui的parser(解析器)之后,接下来就是easyloader(简单载入器)的学习了. 什么是EasyLoader 正如其名字一样easyloader的作用是为了动态的载入组件所需的 ...

  3. iOS开发——新特性OC篇&IOS9 SDK新特性

    iOS9 SDK新特性 WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获.本文为王巍 ...

  4. Docker容器案例:应用 Mysql

    原创 杜亦舒   前阶段体验 Mysql 的新版本 5.7.13,由于机器里已经有 Mysql了,再安装另一个版本会有一些麻烦,为了简单,便使用 Docker 容器来安装 可能有人会认为没必要,在一台 ...

  5. mysql 高可用方案漫谈(一) 转阿里云

    https://yq.aliyun.com/articles/2237?spm=5176.blog2238.yqblogcon1.7.e5fyEy#index_section

  6. 隐式Intent实例

    注意:The <strong>categories</strong>, if supplied, must <em>all</em> be listed ...

  7. Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题

    之前写过关于HorizontalScrollView滑动和按钮事件触发问题,但是不能所有的情况,最近几天一直在想这个问题,今天有一个比较好的解决思路,最终应用在项目里面效果也很好,首先说明一下功能: ...

  8. 浅谈iOS中的视图优化

    引言: 让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是不是存在多余的GPU渲染?业务这点工作量对于越来越强大的设备面前显得微不足道,但作为 ...

  9. 学习opencv中文版教程——第二章

    学习opencv中文版教程——第二章 所有案例,跑起来~~~然而并没有都跑起来...我只把我能跑的都尽量跑了,毕竟看书还是很生硬,能运行能出结果,才比较好. 越着急,心越慌,越是着急,越要慢,越是陌生 ...

  10. [关于SQL]查询成绩都大于80分的学生

    1.用一条SQL语句 查询出每门课都大于80分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英 ...