基础回顾
文章平均质量分 66
洗头用酱油
这个作者很懒,什么都没留下…
展开
-
java多线程 基础回顾
1.进程和线程的区别?进程是正在执行的应用程序。而线程则是进程中的执行流程,一个进程中可以同时包含多个线程,每个线程也可以得到一小段程序的执行时间。2.实现线程的主要两种方式:a.继承java.lang.thread类b.实现java.lang.Runnable接口通常情况下,runnable更加实用,因为java无法多继承。3.继承thread类:public class ThreadTest ...原创 2018-05-09 05:24:21 · 152 阅读 · 0 评论 -
设计模式在JDK中的运用
今天复习了一下设计模式,也从源码中去寻找了一下设计模式在JDK中的运用。适配器模式:核心思想就是将一个接口适配(伪装成)到另一个接口。在Java I/O中运用到了很多适配器模式,例如将字符串数据转变成字节数据保存到文件中或将字节数据转变成流数据等,下面用InputStreamReader 举例。public class InputStreamReader extends Reader...原创 2018-08-28 13:21:30 · 706 阅读 · 0 评论 -
反射机制在 JVM中
前面博客中说到反射机制,它是Java的重要特性,它允许Java程序在运行的时候观察程序本身,甚至是修改程序。以前说到了Java通过Class枚举获得类中的所有方法,属性值,其实还可以用Method.SetAcessible方法绕过Java语音的访问权限,在私有方法所在类之外的地方调用该方法。反射最常用的应用是Spring IOC的DI,其实在我们常用的IDE软件中,在我们输入在类名后输入.号后...原创 2018-08-13 20:41:15 · 935 阅读 · 0 评论 -
JVM 中的异常处理
通常来说在JVM中构建一个异常实例是一个十分昂贵的动作。 因为在构建异常的时候,JVM就需要生成一个异常栈轨迹(stack trace)。这个操作会逐一访问当前线程的Java 栈帧,并且记录下调试的各种信息,比如:所在的方法名,方法所在的类,文件名,以及具体在什么代码行。(抛出异常的时候可见) JVM具体是怎么抛出异常的首先JVM在编译的时候,每个方法都会附带一个异常表(异常表会声明...原创 2018-08-07 22:01:02 · 2284 阅读 · 0 评论 -
深入理解抽象类和接口
接口:接口可以理解为对行为的抽象,利用接口可以把API和接口分离开来。在接口里面只能有常量(public final static)。方法的话只能允许静态方法和抽象方法。接口 不能被实例化。甚至有的接口里面都没有声明抽象方法,只有常量:cloneable。抽象类:主要用于方法重用,用abstract 关键字修饰class。 也是不能实例化,抽象类可以实现接口。 最近的接口:在Java ...原创 2018-07-21 00:08:23 · 211 阅读 · 0 评论 -
文件拷贝效率与操作系统
内核态空间:操作系统底层分为内核态空间和用户态空间。其中系统内核和硬件驱动等都属于内核态空间,它拥有较高的特权。用户态空间:则是普通应用和服务所在的空间数据拷贝的方法:数据拷贝主要有以下3种方法:a .使用inputstream 和outputstream。然后使用inputstream的read()方法读取数据,outputstream的write()方法写数据。...原创 2018-07-20 17:34:22 · 275 阅读 · 0 评论 -
IO和NIO的区别
在这里不再过多描述IO的具体API用法。 总的来说reader,writer是处理字符的,而inputsream 和 outputstream是处理字节的,eg:图片什么的(其实现在大多Web应用上传图片时候也不会使用字节流而是上传一个图片存储的地址)。上图是IO的大体结构。其中buffer 相当于一个缓冲区,通过这个缓冲区,字节传输的可以改为块传输,提高了效率。 IO(同步阻塞)...原创 2018-07-20 16:54:37 · 4978 阅读 · 0 评论 -
Spring MVC 问答
1.Spring 运行原理:a.首先所有请求会被提交给DispatcherServlet。b.DispatcherServlet查询一个或者多个HanderMapping,找到处理请求的controller。c.然后DispatcherServlet把请求提交给controller。d.controller通过业务逻辑处理后返回一个ModelAndView。e.Dispache...原创 2018-07-16 18:58:08 · 150 阅读 · 0 评论 -
Java面试常见问答
1.hashmap的内部实现 答:hashmap 是对数据结构hash table 的内部实现,哈希表也叫散列表,有着不错的查询和添加速度。它通过关键吗key来访问其对应的值value。就是关键码key(key.hashcode())的映射函数来找到表中相对应的位置的value。它结合了链表和数组的优势,其中链表是用来解决hash冲突的。其链接节点数据结构是entry<k,v>,每个e...原创 2018-07-16 14:21:39 · 1345 阅读 · 0 评论 -
HashMap and HashTable
1. 关于HashMap的一些说法: a) HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap的底层结构是一个数组,数组中的每一项是一条链表。 b) HashMap的实例有俩个参数影响其性能: “初始容量” 和 装填因子。 c) HashMap实现不同步,线程不安全。 HashTable线程安全 d) HashMap中的key-value都是存储在...原创 2018-05-28 07:48:05 · 116 阅读 · 0 评论 -
java 面试基础回顾
java 面试基础回顾 (自己对java表层知识点基础回顾)1.JDK 和 JRE 的 区别?总的来说,JDK 是完整的java软件开发包,里面包含了JRE,编译器和其他的工具(javadoc),以至于开发者可以进行开发,编译,执行java程序。而JRE是将要执行java程序的java虚拟机。2.为什么java是一个跨平台的语言?因为java虚拟机的存在,它了解底层硬件平台的指令长度(例如wind...原创 2018-05-08 09:56:29 · 245 阅读 · 0 评论 -
java基础回顾之JVM
java 栈:包含三类信息:局部变量,执行环境,操作数栈。局部变量用来存储一个类的方法中所用到的局部变量。执行环境用于保存解析器对于java字节码进行解释过程中需要的信息,包括:上次调用的方法、局部变量指针和 操作数栈的栈顶和栈底指针。操作数栈用于存储运算所需要的操作数和结果。StackFrame在方法被调用时创建,在某个线程中,某个时间点上,只有一个 框架是活跃的,该框架被称为Current F...转载 2018-05-19 03:14:08 · 110 阅读 · 0 评论 -
java基础回顾之异常处理
1.java中的两种异常类型是什么?它们有什么区别?一个是unchecked的异常,它是error 和 runtimexception 的子类。error 是java自己的错误或者内存耗尽等严重错误是不可抗拒的。runtimexception 是程序有逻辑错误,如空指针,类转换,数据类型转换等,是需要程序员开发过程中尽量避免的。另一个是checked的异常,它是exception的子类,如果不捕捉...原创 2018-05-13 05:56:31 · 214 阅读 · 0 评论 -
java基础回顾之GC篇
1.java 中的垃圾回收有什么目的?垃圾回收的目的是识别并且丢弃那些不再使用的对象。整个回收过程的进行取决与JVM自己。2.finalize() 方法什么时候调用?在释放内存占用的对象时,会调用finalize方法。3.java 堆的结构JVM的堆是运行时数据区,所有类的实例和数组在这里被分配内存。在JVM启动的时候堆被创建。4.在java中,对象什么时候可以被垃圾回收?在对象对当前使用这个对象...原创 2018-05-13 05:41:13 · 136 阅读 · 0 评论 -
java 集合类基础回顾
1.java集合类里面最基本的接口有:a.collection: 代表一组对象,每一个对象都有它的子元素。b.set:不包含重复元素的collection。c.list:有顺序的collection,并且包含重复元素。d.map:可以把建(key)映射到值(value)的对象,建不能重复。2.迭代器(iterator)iterator接口提供了很多对集合元素进行迭代的方法。每一个集合元素类都包含了...原创 2018-05-11 08:40:32 · 256 阅读 · 0 评论