排序:
默认
按更新时间
按访问量

Java同步处理底层实现(monitor 可重入锁)

对于Java同步处理可以参考这篇博客:链接 但是这些处理方法的底层实现是怎样呢? 接下里将会解释同步代码块、同步方法、全局锁的底层实现。 同步代码块底层实现: 首先看一个简单的同步代码块: /////同步代码块底层实现 public class DiCeng { pu...

2018-11-13 11:46:47

阅读数:10

评论数:0

同步(同步代码块synchronized(this) 同步方法 、全局锁、同步处理方法对比)

class MythreadB implements Runnable { private Integer tickets=10; public void run() { while(tickets>0) {...

2018-11-13 07:28:31

阅读数:4

评论数:0

守护线程

什么是守护线程?

2018-11-12 13:24:12

阅读数:5

评论数:0

线程优先级(线程具有继承性、setPriority、getPriority)

什么 是线程优先级? 线程优先级是指优先级越高,越有可能先执行,但只是建议先执行,具体什么时候执行由系统决定。 设置线程优先级 public final void setPriority(int newPriority) ; 取得线程优先级 public final int getPrior...

2018-11-12 11:10:13

阅读数:9

评论数:0

线程停止(stop/intrrupt)

使一个线程停止有下列三种方式: 使用标记位(设置flag)停止线程; 调用stop方法强制停止线程; Thread类的interrupt方法; 一:使用falg停止线程 ////使用标记位 class Mythread3 implements Runnable { ...

2018-11-11 23:10:00

阅读数:7

评论数:0

多线程常用操作方法(sleep、yield、join)

线程的命名与取得 线程的命名: 通过构造方法在创建线程时设置线程名称 直接继承Thread类: public Thread (String name); Runable或者Callable接口实现多线程: public Thread (Runable target,String...

2018-11-11 20:16:42

阅读数:10

评论数:0

如何实现多线程?实现多线程为什么要调start,而不是run方法?(继承Thread类、实现Ruable接口、Callable<V>)

什么是进程? 操作系统中一个程序的执行周期(从打开到关闭)。进程是具有一个或多个线程的线程组。 什么是线程? 一个进程可以同时执行多个任务,任务就是线程,一个进程至少有一个线程。 线程运行在进程内部,线程是轻量级进程。 进程和线程比较: 与进程相比,线程更加轻量级,创建,撤...

2018-11-11 17:42:42

阅读数:13

评论数:0

JDK信新特性-----方法引用(引用类的静态方法、引用对象的普通方法、引用类的普通方法、引用类的构造方法)

方法引用的出现: 在JDK1.8以前,引用一般指的是数组引用、类引用和接口引用,但在JDK1.8后,有了方法引用,引用就是别名,方法引用是一个方法是另一个方法的别名。 方法引用有四种形式: 引用类中静态方法 使用格式: 类名称 :: 静态方法名称 引用某个对象的方法 使用格式: 实例化对象 :...

2018-11-11 09:50:17

阅读数:7

评论数:0

Lambda表达式

我们知道一个接口中有抽象方法,抽象方法由子类实现,但是抽象方法也可以由lambda表达式实现。Lambda是JDK1.8推出的重要新特性。 //抽象方法由子类实现 interface IB { void add(int a,int b ); } class BImpl im...

2018-11-08 09:40:07

阅读数:7

评论数:0

JDK新特性------接口定义加强(普通方法:defult和static方法)

为什么会有接口定义加强? 因为接口中只有方法声明没有方法体,那么就说明子类需要实现抽象方法,如果有很多子类实现的方法体相同,那么就有很多相同的代码,但是在java中不建议出现相同代码,这时在JDK1.8之后,解决办法是:接口中把相同方法实现。 JDK1.8提供了两类新的结构: 使用def...

2018-11-08 08:33:25

阅读数:11

评论数:0

JDK新特性-----注解@ (@Override、@Deprecated、@SuppressWarings)

注解—@Override 准确覆写 为什么会有@Override? 如果子类Student需要覆写父类Object的toString方法: class Student { public String tostring() //希望覆写toString,但是并没有报错 ...

2018-11-07 18:44:53

阅读数:18

评论数:0

JDK新特性------枚举

枚举优点 如果要求实例化有限个Color对象,可以采用之前学过的多例模式,将构造私有化,在类里实例化对象,然后用静态get方法获取对象,代码如下: package CODE.Java新特性; class Color { private String colour; public ...

2018-11-07 16:43:25

阅读数:8

评论数:0

牛客网----删除链表中重复结点

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1-&amp;gt;2-&amp;gt;3-&amp;gt;3-&amp;gt;4-&amp;gt;4-&amp;gt;5 处理后为 1-&a...

2018-11-06 23:28:46

阅读数:8

评论数:0

牛客网---链表分割

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。 对于这个题:思路是: 先将原链表数据分为2个集合,一个是小于x的集合l1,另一个...

2018-11-06 23:10:56

阅读数:6

评论数:0

类型擦除

什么是类型擦除? 类型擦除指的是一些信息仅存在于源码阶段,编译之后就不存在。类型擦除在Java中有泛型,自动拆装箱。 泛型信息仅存在于代码编译阶段,进入JVM之前,与反向相关信息会被擦除。即泛型类和普通类在Java虚拟机内没有任何区别。 通过代码看编译之后类的类型类: package CODE.泛...

2018-11-06 09:27:34

阅读数:35

评论数:0

通配符(?/? extends 类/ ? super 类)

先看一个例子: class Message&amp;lt;T&amp;gt; { private T message; public T getMessage() { return message; } public voi...

2018-11-05 21:28:05

阅读数:16

评论数:0

泛型类、泛型方法、泛型接口

我们知道Object类可以接收任何类型的类,如果描述一个坐标可以用数字描述,也可以用字符串描述(东经 北纬…),Object根据不同的需求接收不同的类可以完成一些操作: class Position { private Object x; private Object y;...

2018-11-05 17:43:44

阅读数:16

评论数:0

可变参数、for--each、静态导入

可变参数 在JDK1.5引入可变参数,可变参数就是参数个数任意。 如果要计算任意个整数相加的和,我们的思路是将这些数放在数组里,但是有了可变参数后,不用new数组,直接传入要相加的数值。 可变参数定义格式: public [static] [final] 返回值 方法名称([参数类型 参数名称][...

2018-11-05 11:04:08

阅读数:6

评论数:0

接口设计模式---工厂设计模式(简单工厂模式、工厂方法模式、抽象工厂模式)代理模式

在Java中工厂设计模式分为: 简单工程模式:不想把new 放在主方法 专门定义一个类(第三方)用来创建其他类实例(解耦:抽取出来 ,将客户端创建对象的操作解耦到外部第三方类),被创建的实例通常具有共同的父类。 在我们之前的代码中,对象的实例化是在主方法中: ////传统在主方法中...

2018-11-03 09:38:51

阅读数:44

评论数:0

Java对数组的支持(java.util.Arrays.sort/System.arraycopy和java.util.Arrays.copyOf区别)

数组排序java.util.Arrays.sort(数组名称 ); 支持所有类型的数组 public class ArrayDemo{ public static void main(String[] args) { int[] intData = new int...

2018-11-02 21:25:20

阅读数:38

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭