- 博客(17)
- 收藏
- 关注
转载 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?
在Java虚拟机中,每个对象(object和class)通过某种逻辑关联监视器,每个监视器和一个对象引用相关联,为了实现监视器的互斥功能,每个对象都关联着一把锁。 一旦方法或者代码块被synchronized修饰,那么这个部分就放入了监视器的监视区域,确保一次只有一个线程执行该部分代码,线程必须在获取锁之前不允许执行该部分代码。 Java提供了显示监视器(Lock)和隐式...
2018-06-18 22:32:00 1397
转载 同步方法和同步代码块的区别是什么?
同步方法默认用this或者当前类class对象作为锁。同步代码可以选择以什么来加锁,比同步方法更细颗粒化,同步代码可以同步有同步问题的部分代码而不是整个方法。同步方法用关键字synchronized修饰方法,同步代码主要修饰需要进行同步的代码块,用synchronized(object){代码内容}进行修饰。转载于:https://www.cnblogs.com/Freak-...
2018-06-18 21:55:00 591
转载 概括的解释下线程的几种可用状态。
1、新建(new):新建一个线程对象。2、可运行状态(runnable):线程对象创建后,其他线程调用该对象的start()方法,该状态的线程位于可运行线程池中,等待线程调度选中,获取CPU使用权。3、运行状态(running):可运行状态的线程获取到了cpu时间片(timeslice),执行程序代码。4、阻塞(block):运行状态的线程因为某些原因放弃了CPU的使用权,也...
2018-06-18 16:21:00 435
转载 创建线程有几种不同的方式?你喜欢哪一种?为什么?
创建线程有四种不同的方式:1、继承Thread类2、实现Runnable接口3、应用程序可以使用Executor框架来创建线程池4、实现Callable接口我更喜欢实现Runnable接口,因为这样不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承,而Java只能单继承,所以只能实现接口。同时线程池的效率也非常高,很容易实现和使用。...
2018-06-17 22:27:00 736
转载 进程和线程的区别是什么?
进程是执行着的程序,线程是进程的一个执行序列。一个进程可以有多个线程,线程有称为轻量级的进程。 线程的划分小于进程,线程隶属于进程。进程是程序的一个动态形式,是CPU、内存等资源占用的基本单位,而线程是不能拥有这些资源的。进程之间相互独立,通信比较困难。线程之间有共享的一块内存区域,通信比较方便。进程执行的过程中,包含比较固定的入口、执行顺序、出口,而线程的这些过程会被应用程序...
2018-06-17 21:55:00 111
转载 什么是值传递和引用传递?
值传递值传递一般是基本数据类型的传递,传递的是该变量的一个副本,改变副本不影响原变量。引用传递引用传徒一般是引用数据类型的传递,传递的是该对象地址的一个副本,并且不是原对象本身。一般情况下,Java内的基本数据类型的传递都是值传递,Java内的引用数据类型的传递都是引用传递。转载于:https://www.cnblogs.com/Freak-Lew/p/9...
2018-06-17 16:07:00 105
转载 接口和抽象类的区别是什么?
从设计层面讲,抽象是类的抽象,是一种模版设计,接口是行为抽象,是一种行为规范。抽象类可以存在抽象方法和非抽象方法,接口只能存在抽象方法。类只可以继承一个抽象类,但是可以实现多个接口。抽象类声明的变量可以是非final的,接口声明的变量默认为final的。抽象类的成员函数可以为public、protected、private的,接口的成员函数只能是public...
2018-06-17 15:50:00 114
转载 Java支持多继承么?
Java中类不支持多继承,只支持单继承(即一个类只有一个父类)。 但是java中的接口支持多继承,,即一个子接口可以有多个父接口。(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能)。Java只支持单继承是出于安全性考虑,如果子类继承了多个父类里面有相同的方法或者属性,子类不知道具体继承哪个,而接口可以多实...
2018-06-17 11:17:00 160
转载 Java中,什么是构造方法?什么是构造方法重载?什么是复制构造方法?
什么是构造方法?当新对象被创建的时候,构造方法就会被调用。每一个类都有构造方法,如果程序员没有给类提供构造方法,Java编译器会为这个类创建一个默认的构造方法。什么是构造方法重载?构造方法重载跟方法重载很相似,可以为一个类创建多个构造方法,每一个构造方法必须有它自己唯一的参数列表。什么是复制构造方法?Java不支持构造方法的复制,复制构造方法是C++的内容...
2018-06-16 20:14:00 337
转载 Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
方法覆盖也称为重写,重写即子类重新定义了父类的方法。重写: 1、重写的方法必须与原方法有相同的方法名、参数列表和返回值类型(Java SE5之后返回值类型可以是其类型的子类型) 2、被重写的方法不能是final类型,因为final类型无法重写 3、被重写的方法不能是private,因为private无法继承,而继承是重写的前提 4、被重写的方法不能为sta...
2018-06-16 17:09:00 2500
转载 Java支持的数据类型有哪些?什么是自动拆装箱?
Java有8种基本数据类型:整数型:byte(8)、short(16)、int(32)、long(64)浮点类型:float(32)、double(64)字符型:char(16位的Unicode字符)布尔型:booleanjdk1.5之后支持自动拆装箱自动装箱就是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。自动拆箱反之。转载于:h...
2018-06-16 15:25:00 97
转载 是否可以在static环境中访问非static变量?
因为静态成员属于类,随着类的加载而加载到静态方法区内存,在类加载时,此时不一定有实例创建,没有实例,就不可以访问非静态成员变量。转载于:https://www.cnblogs.com/Freak-Lew/p/9190260.html...
2018-06-16 11:57:00 183
转载 ”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?...
static是表示静态的意思,它可用来修饰成员变量和成员函数,被静态修饰的成员函数只能访问静态成员,不能访问非静态成员。静态是随着类的加载而加载,因此可以直接用类进行访问。 覆盖又称为重写,重写就是子类中的方法和子类继承的父类中的方法一样(函数名、参数类型、参数、返回值类型),但子类的访问权限不要低于父类的访问权限。重写的前提是必须要继承,private修饰不支持继承,因此被私...
2018-06-16 11:46:00 245
转载 JDK和JRE的区别是什么?
JRE(Java Runtime Environment)即Java运行时环境,它包含Java虚拟机、Java核心类库和支持文件。它只是提供给想要运行Java程序的用户使用的。JDK(Java Development Kit)即Java开发工具包,它包含JRE,编译源码的编译器javac,Java程序调试和分析工具jconsole,Java程序编写所需的文档和demo例...
2018-06-16 10:59:00 99
转载 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
回答:Java虚拟机就是一个可以执行Java字节码的虚拟机进程。Java源文件通过javac编译器编译生成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意平台,而不需要程序员为每一个平台单独重写或者重新编译。而所谓跨平台就是在不同的平台上安装了不同的JVM,而在不同的平台上.class文件都是一样的,而.class文件再由对应平台的JVM解释成对应平...
2018-06-16 10:38:00 128
转载 什么是面向对象?
面向对象是一种思想,是相对于面向过程而言的。面向对象是将功能等通过对象实现,将功能封装进对象中,让对象去实现具体细节。面向对象的三大特征:封装性、继承性、多态性。封装性就是把对象的属性和实现的细节隐藏起来,仅对外提供公共的访问方式。继承性就是两种事物间存在一定的所属关系,继承是多态的前提。多态性就是父类引用指向子类对象。面向对象的特点是:将复杂的事情简单化;从以前的过程中的执行者变成...
2018-06-15 21:27:00 101
转载 类,对象,方法,变量
类(Class)实际上是对某种对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象的基础。对象(Object)对象是一件事、一个实体等任何可以获得的东西。对象是类的实例,对象是动态的,拥有生命周期,都会经历从创建到运行到消亡的过程。实例实例其实就是对象,对象是类的实例,也称类实例方法方法是语句的集合,他们一起执...
2018-06-15 21:09:00 276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人