
java
Rosso_
这个作者很懒,什么都没留下…
展开
-
java核心技术----多态
基本概念:多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)(也可以理解为向上转型) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。 多态的作用:消除类型之间的耦合关系。 多态存在的三个必要条件:一、要有继承;...原创 2018-07-30 10:54:10 · 343 阅读 · 0 评论 -
java面向对象的理解
1.面向对象的含义与面向对象和面向过程的区别。2.面向对象的三大特征为:封装、继承和多态,及其理解:封装:把自己内部的实现细节进行隐藏,只暴露对外的接口继承:实现代码的复用以及扩展,子类通过对父类代码的复用多态:当把不同的子类对象都当做父类类型来看待,可以屏蔽不同子类对象之间的实现差异,从而写出通用的代码达到通用编程,以适应需求的不断变化。...原创 2019-08-27 10:01:13 · 137 阅读 · 0 评论 -
利用PriorityQueue实现最大最小堆
这是在刷剑指offer--“数据流中的中位数”一题中所遇到的问题,该题需要实现一个最大堆,一个最小堆。实现方法如下:PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>(); //小顶堆,默认容量为11PriorityQueue<Integer> maxHeap = new Prior...原创 2019-03-28 15:54:33 · 751 阅读 · 0 评论 -
java线程的生命周期
线程可以分为4个状态:New(新生),Runnable(可运行):为了方便分析,还可将其分为:Runnable与Running。blocked(被阻塞),Dead(死亡)。具体状态变化如下图,其中状态的改变都可以利用Thread类的方法进行控制,其中一些方法可能会导致安全问题(如,stop()),图中所示方法较为安全。需要关注的是线程等待和睡眠是不一样的,具体对应sleep()...原创 2019-04-01 17:26:58 · 188 阅读 · 0 评论 -
java中的锁
java中的锁与线程安全有着密切的关系,因此首先需要了解java中的线程安全。java中的线程安全主要有三种策略:1.阻塞同步(互斥同步):同步是指在多线程并发访问共享数据时,保证共享数据在同一时刻只能被一个线程使用。因此其他会出现线程的阻塞,而阻塞线程会在核心态和用户态之间相互切换,极大影响性能。2.非阻塞同步:为了解决互斥同步产生的问题,出现了基于冲突检测的乐观并发策略,通俗地说,...原创 2019-03-16 20:16:45 · 116 阅读 · 0 评论 -
线程与进程
线程:线程是程序的一条执行线索,执行路径,是程序使用cpu的最小单位。线程本身不能运行,它只能运行在程序中,线程是依赖于程序存在的。那么多线程的存在其实就是“最大限度的利用cpu资源”,当某一个线程的处理不需要占用cpu而之和I/O打交道的时候,让需要占用cpu资源的其他线程有机会获得cpu资源,因此也可以得出结论即当要处理io密集的工作时,应使用多线程。线程的实现与操作系统提供的内核线程...原创 2019-03-16 17:49:38 · 120 阅读 · 0 评论 -
java并发--自旋锁
自旋锁的优点自旋锁不会使线程状态发生切换,一直处于用户态,即线程一直都是active的;不会使线程进入阻塞状态,减少了不必要的上下文切换,执行速度快 非自旋锁在获取不到锁的时候会进入阻塞状态,从而进入内核态,当获取到锁的时候需要从内核态恢复,需要线程上下文切换。 (线程被阻塞后便进入内核(Linux)调度状态,这个会导致系统在用户态与内核态之间来回切换,严重影响锁的性能)自旋锁存在的问题...转载 2019-02-20 16:36:03 · 233 阅读 · 0 评论 -
Leetcode刷题中关于java的一些小问题
1.java 中一些经典数据结构的写法:Java Stack 类栈是Vector的一个子类,它实现了一个标准的后进先出的栈。EG:import java.util.*;Stack<Integer> st = new Stack<Integer>();队列:Queue<String> queue = new LinkedList<...原创 2018-11-18 19:17:56 · 492 阅读 · 0 评论 -
java核心技术----泛型
Java 泛型,你了解类型擦除吗?关于通配符的使用,涉及到数组的协变性:协变、逆变与不变:数组、泛型、与返回类型一个例子:利用反射绕过泛型的编译时检查,了解泛型的擦除(利用java反射机制绕过编译时的类型检查)...转载 2018-08-03 14:06:01 · 123 阅读 · 0 评论 -
java核心编程----回调
java回调机制详解转载 2018-07-31 19:35:49 · 313 阅读 · 0 评论 -
java核心技术----反射
反射的概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。为什么要用反射:反射机制的优点就是可以实现动态创建对象和编译(即动态绑定),体现出很大的灵活性,特别是在J2EE的开发中它的灵活性就表现的十分明显。比如,一个大型的软...转载 2018-07-30 19:23:36 · 255 阅读 · 0 评论 -
java核心技术----值传递
结论如下:Java都是值传递,其含义是若传递的是值,当然是值传递,但若传递的是引用(类,数组等)传递的是引用的地址值,所以统称按值传递,即:1、基本类型做的是值传递。 2、引用类型做的是地址传递。具体分析参照(java引用传递值传递的"深入"解析与c++中的值传递)...转载 2018-07-26 21:56:13 · 197 阅读 · 0 评论 -
java垃圾收集器
1.serial收集器:使用复制算法的新生代收集器,最简单的垃圾收集器,单线程收集器,单线程进行收集工作,在进行垃圾收集时会stop the world2.ParNew收集器:使用复制算法的新生代收集器,serial收集器的多线程版本,多线程进行收集工作,唯一可以与CMS(老年代)收集器配合使用的收集器。3.CMS(currrent mark sweep)收集器:以获得最短回收...原创 2019-08-29 20:30:43 · 156 阅读 · 0 评论