![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
文章平均质量分 83
轩辕花狐貂
这个作者很懒,什么都没留下…
展开
-
string 、 stringbuffer以及 stringbuilder的区别
String:字符串常量StringBuffer:字符串变量StringBuilder:字符串变量1.可变与不可变 String类中使用字符数组保存字符串, private final char value[]; 所以String在修改时不会改变对象自身在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对...原创 2017-07-19 20:55:52 · 371 阅读 · 0 评论 -
多线程编程()--Juc锁框架之ReentrantLock
一、ReentrantLock概述。1.1 含义概述ReentrantLock一个可重入的互斥锁,又被称为“独占锁”,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。ReentrantLock将由最近成功获得锁,并且还没有释放该锁的线程所拥有。当锁没有被另一个线程所拥有时,调用Lock的线程将成功获取该锁并返回。如果当前线程已经拥有该锁...原创 2018-04-28 22:10:16 · 199 阅读 · 0 评论 -
多线程编程(七)-----ThreadGroup线程组
一、线程组概述线程组ThreadGroup表示一组线程的集合,一旦一个线程归属到一个线程组之中后,就不能再更换其所在的线程组。Java使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。线程组的作用:方便统一管理,线程组可以进行复制,快速定位到一个线程,统一进行异常设置等。ThreadGroup它其实并不属于Java并发包中的内容,它是jav...原创 2018-05-04 13:38:23 · 395 阅读 · 0 评论 -
多线程编程(五)---synchronized关键字
一、synchronized原理在Java中每一个对象有且仅有一个同步锁,就是说同步锁是依赖对象存在的。当我们调用某个对象的同步方法时,就获取了该对象的同步锁。不同线程对同步锁的访问是互斥的。也就是说某个时间点,对象的同步锁只能被一个线程获取到。通过同步锁,我们就能在多线程中实现对对象或方法的互斥访问。譬如现在有两个线程窗口1和窗口2,它们都会访问对象obj的同步锁、。假如,在同一时刻窗口1获取到...原创 2018-04-22 10:30:00 · 145 阅读 · 0 评论 -
多线程编程(四)--多线程练习
一、多线程练习某电影院正在上映贺岁大片,共有100张票,而它有三个售票窗口售票,请设计一个程序模拟该电影院售票。提示:两种方法实现(1)继承Thread 类 (2)实现Runnable接口(1)继承Thread 类package cn.itcast_06; public class SellTicketThread extends Thread{ // 定义100张票 //int ticke...原创 2018-04-19 23:27:06 · 346 阅读 · 0 评论 -
多线程编程()--Juc锁框架之概述
一、锁的简述。根据锁的添加到Java中的时间,Java中的锁,可以分为"同步锁"和JUC包中的锁。1.1 同步锁 同步锁即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。Java 1.0版本中就已经支持同步锁了。 同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样,...原创 2018-04-22 12:32:45 · 236 阅读 · 0 评论 -
多线程编程(一)------多线程概念
一、进程 要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在。 1.1 进程 打开任务管理器我们就看到了进程的存在。而通过观察,我们发现只有运行的程序才会出现进程。进程:就是正在运行的程序。进程是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。即每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存...原创 2018-04-12 09:19:21 · 135 阅读 · 0 评论 -
集合框架(五)---hashMap
简述:HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。源码如下:package java.util; import java.io.IOExcepti...原创 2018-04-11 19:32:00 · 366 阅读 · 1 评论 -
集合框架(四)----Map
一、Map集合概述前面,我们已经系统的对List进行了学习。接下来,我们先学习Map,然后再学习Set;因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。如上图所示:1)map是映射接口,map中存的内容是键值对(即key--value).2)AbstractMap是继承于Map的抽象类,实现了Map中的大部分API...原创 2018-04-11 13:23:30 · 185 阅读 · 0 评论 -
多线程编程(三)--Thread常用方法以及ThreadLocal
一、Thread常用方法在多线程编程中,thread类是很常用的。接下来就来学习一些常用的方法。1)获取线程对象的名称和设置线程对象的名称public final String getName():获取线程的名称。public final void setName(String name):设置线程的名称 * 针对不是Thread类的子类中如何获取线程对象名称呢? * public static ...原创 2018-04-16 20:47:54 · 1011 阅读 · 0 评论 -
多线程编程(二)-----多线程的实现
一、多线程的实现方式 由于线程是依赖进程而存在的,我们首先应该创建一个进程出来。而进程是由系统创建的,所以我们应该去调用系统功能创建一个进程。Java是不能直接调用系统功能的,多以我呢吧没有办法直接实现多线程程序。但是java 可以去调用C/C++写好的程序来实现多线程程序,由CC++去调用系统功能创建进程,然后由Java去调用这样的东西,然后提供一些类或接口给我们使用,我们...原创 2018-04-14 15:59:42 · 326 阅读 · 0 评论 -
集合框架(一)-------Collection
一、集合的由来 * 集合的由来: * 我们学习的是面向兑现语言。而面向对象语言对事物的描述又是通过对象体现的。 * 为了方便对多个对象进行操作,我们必须把这个对象进行存储。 * 而要存储多个对象就不能是一个基本的变量,而应该是一个容器类型的变量。 * 在我们以前所学的知识里,有哪些是容器类型的呢?数组和StringBuffer * 但是stringbuffer的结果是...原创 2018-03-17 16:17:27 · 139 阅读 · 0 评论 -
集合框架(二)---集合的遍历之迭代器
一、集合遍历集合的遍历其实就是获取集合中的每一个元素。主要有两种方式:1)把集合转化成对象数组,对对象数组进行遍历,获取每个对象。 2)通过Iterator来实现package cn.itcast_01; import java.util.ArrayList; import java.util.Collection; import java.u...原创 2018-03-17 22:03:58 · 424 阅读 · 0 评论 -
多线程编程(六)---线程间通信与协作
一、线程间通信概念线程是操作 系统中独立的个体,这些个体如果不经过特殊的处理就不能成为一个整体,线程间的 通信就成为整体的必用方式之一。系统要实现某个全局功能必定要需要各个子模块之间的协调和配合,就像一个团队要完成某项任务的时候需要团队各个成员之间密切配合一样。而对于系统中的各个子线程来说,如果要完成一个系统功能,同样需要各个线程的配合,这样就少不了线程之间的通信与协作。当线程存在通信指挥,系统间...原创 2018-04-29 13:09:37 · 161 阅读 · 0 评论