自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Lock的使用和Condition接口

Lock的使用本质上Lock仅仅是一个 接口,可以通过显式定义同步锁对象来实现同步,能够提供比synchronized更广泛的锁定操作,并支持 多个相关的Condition对象。-void lock() : 尝试获取锁,获取成功则返回,否则阻塞当前线程; —void lockInterruptibly() throws InterruptedException;尝试获取锁,线程在成功获取锁之前被中断,则 放弃获取锁,抛出异常; —boolean tryLock();尝试获取锁,获取...

2021-02-20 23:37:13 286

转载 成员变量和局部变量的区别

变量:在程序执行的过程中,在某个范围内其值可以发生改变的量。从本质上讲,变量其实是内存中的一小块区域成员变量:方法外部,类内部定义的变量局部变量:类的方法中的变量。成员变量和局部变量的区别作用域成员变量:针对整个类有效。局部变量:只在某个范围内有效。(一般指的就是方法,语句体内)存储位置成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。当方法调用完,或者语句结束后,就自动释放。生命周期

2021-02-19 22:54:58 267

原创 内部类(静态内部类、局部内部类、匿名内部类)

内部类:一个类或者接口定义在另外一个类或者接口的内部,将一个类定义置入另一个类定义中,这就叫做“内部类”。 public class A1{ //外部类 class A2{} //内部类 interface A3{} //内部接口 }内部类的名称必须区别与它所在的外部类,与其他类之间没有要求;public class A1 { //外部类 class A2{} //内部类 } class A2{}内部类可以访问其外部类的

2021-02-03 23:35:16 266 1

原创 单例模式(饿汉,懒汉)

单例模式意图:保证一个类仅有一个实例,并提供一个访问他的全局访问点。主要解决:一个全局使用的类频繁的创建与销毁;何时使用:当你想控制实例数目,节省系统资源的时候。单例模式有多种,其中最常见的是懒汉和饿汉模式饿汉模式:优点:没有加锁,执行效率更高;缺点:类加载时就初始化,浪费空间;编程实现:私有构造器 静态的私有属性 公共的静态方法public class EHan{private static EHan instance =new instance();//直接

2021-02-02 00:01:04 150 2

原创 进程和线程的区别和联系

进程和线程的区别和联系:区别:调度:线程是CPU调度和分配的基本单位,进程是系统资源分配和调度的基本单位。 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行,一个进程至少有一个线 程(单进程单线程),一个线程必须隶属于某个进程。 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。进程和线程最大的区别在于:进程是由操作系统来控制的,而线程是由进程来控制的。 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换

2021-02-01 00:46:02 87

原创 启动进程的两种方法

启动进程的两种方法方法一:public class QiDong0001 { public static void main(String[] args)throws IOException { ProcessBuilder pb = new ProcessBuilder("cmd","/c","ipconfig/all"); //通过对象名调用start()方法,创建一个新的Process实例(也就是说一个进程创建必须启动后才能使用) Process b = pb.start

2021-02-01 00:22:26 1228

原创 创建线程的4种方式

创建线程的4种方式方式一:继承Thread类1>定义子类继承Thread类;2>子类中重写Thread类中的run方法;3>创建Thread子类对象,创建了线程对象;4>调用线程的start方法:启动线程,调用run方法。eg:public class API01 { public static void main(String[] args) { //创建线程 MyThread mt = new MyThread(); //启动线程.

2021-01-31 00:43:50 141

原创 StringBuilder的用法

StringBuilder的用法ta是一个连接字串的类首先需要创建一个对象StringBuilder sb = new StringBuilder();该类有以下几种常用方法1.字符串的连接:append(String str)/append(Char c)System.out.println("wo"+"sb.append("shi").append("yi").append("zhi").append("yu");//输出为:woshiyizhiyu2.返回一个与构造器

2021-01-30 00:20:49 170

原创 过滤流

写博客的第三天过滤流类型过滤流就是在节点流的基础上附加功能过滤流FilterInputStream/FilterOutputStream和FilterReader/FilterWriterpublic class FilterInputStream extends InputStream{ //典型的装饰模式 protected volatile InputStream in; //被装饰目标 protected FilterInpu

2021-01-29 00:55:33 107

原创 (ss = xx.read())!=-1)的含义

一个小知识点: while(kk = is.read())!=-1){ System.out.print((char)kk); }该语句指的是is为一个InputStream对象,read()是is的方法,每读取一个二进制数据并判断is.read()的值是否等于-1,一个字节一个字节的判断不等于则输出该字节,等于的时候则代表数据读取完毕,将读取到的数据赋值给kk;nice!...

2021-01-27 23:39:50 595

原创 输入输出流

1 流1.1 流的概念:Java io包通过数据流、序列化和文件系统为用户提供了一种完成I/O操作的输入/输出流;流就是对输入输出的一个封装,用于屏蔽具体物理目标的差异性;数据流是指所有的数据通信通道;Java程序不能直接操纵输入输出设备,而是在程序和设备之间加入了一个中间介质,叫做流;1.2 流的分类:BIO同步阻塞:数据的读取必须阻塞在一个线程里等待其完成;NIO同步非阻塞:一个线程不断的轮询每个输入输出的状态改变,如果有状态发生了改变,则进行下一步的操作;AIO同步

2021-01-27 22:57:25 159 1

原创 for each循环的理解

写博客的第二天forEach()语句的定义和用法:forEach()方法用于调用数组的每个元素,并将元素传递给回调函数;没有返回值,本质上等同于for循环。注意:forEach语句对于空数组是不会执行回调函数的;不支持continue,可用return false/true实现;不支持break,可用try catch代替;我们会在学习io时遇到该语句:例如:for(File temp:fs)我们可以把File temp看做int i,fs看做一个文件数组,File是给tem

2021-01-27 20:05:25 655

原创 next()和nextLine()的用法以及new String(参数)方法的使用

写博客的第一天!有关next()和nextLine()使用的区别:next():在读取内容的时候,该方法会自动过滤掉无效字符,例如:Tab键、空格键或者Enter键等;next()方法不能得到带空格的字符串;nextLine():在读取内容的时候,Line即行,所以该方法有扫描一整行的意思,它的结束符只能是Enter键,该方法可以得到带有空格的字符串;eg:abc cde efg ghi ijk klm mno opq qrs使用next()得...

2021-01-26 21:07:25 720 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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