第一章 Java常用的并发类】的更多相关文章

注:本系列博客主要参考于<分布式Java应用:基础与实践>,林昊 著 1.常用的并发集合类 ConcurrentHashMap:线程安全的HashMap的实现 CopyOnWriteArrayList:线程安全且在读操作时无锁的ArrayList CopyOnWriteArraySet:基于CopyOnWriteArrayList,不添加重复元素 ArrayBlockingQueue:基于数组.先进先出.线程安全,可实现指定时间的阻塞读写,并且容量可以限制 LinkedBlockingQueu…
1.Java最常用的集合类 Collection接口 List接口(允许有重复元素):ArrayList.LinkedList.Vector.Stack Set接口(不允许有重复元素,可用于去重操作):HashSet.TreeSet Map接口 HashMap TreeMap(具有按key排序的功能) 2.对于Collection需要掌握的七点内容 Collection的创建:即构造器,掌握在构造器方法中Collection的实现类做了一些什么 往Collection中添加对象:即add(E)方…
Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所以Java提供了另一个容器 java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据 什么是ArrayList? 所以从上面的介绍就可以看出所谓的ArrayList类就是一个长度可变的数组. 接下来我们来介绍ArrayList的使用: 第一步肯定是首先导包啦 java.u…
转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做一遍印象会更加深刻一点.书籍参考:Java大学生实用教程(第四版)————耿祥义.张跃平著 第一章 JAVA语言概述 1.发明Java语言的原因是什么?发明Java语言的主要贡献者是谁? 源于独立于平台的需要,即这种语言编写的程序不会因为芯片的变化而发生无法运行或者运行错误.(而当时C语言无法满足人…
第一章 –– Java基础语法 span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4…
I/O基础入门 Java的I/O演进 第一章 Java的I/O演进之路 1.1 I/O基础入门 1.1.1 Linux网络I/O模型简介 根据UNIX网络编程对I/O模型的分类,UNIX提供了5中I/O模型,分别如下. (1)阻塞I/O模型: (2)非阻塞I/O模型: (3)I/O复用模型: (4)信号驱动I/O模型: (5)异步I/O: 1.1.2 I/O多路复用技术 I/O多路复用的主要应用场景: 服务器需要同时处理多个处于监听状态或者多个连接状态的套接字: 服务器需要同时处理多种网络协议的…
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一章  JAVA简介   时间:2017年4月24日10:23:32 章节:01章_02节 内容:jdk的配置与安装 完成情况:已经完成,cmd中javac提示出相关命令   时间:2017年4月24日10:30:39 章节:01章_04节 内容:输出HelloWorld 完成情况: 已经完成 jav…
第一章 java多线程技能 1 线程:进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理顺序时发生的活动:是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位. 而线程是进程中独立运行的子任务. 打印当前线程名:System.out.println(Thread.currentThread().getName()); 2 实现多线程编程 有两种方式,一是继承Thread,二是实现Runnable,运行起来具有随机性. 1.实现接口: public clas…
Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单. Math类的常用方法 public static double abs(double a );返回绝对值 public static double ceil(double a) :返回大于等于参数的最小的整数. public static double floor(…
Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们简单介绍两个方法 public static String toString(int[] a) :返回指定数组内容的字符串表示形式 public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序. ublic class Test { public s…
Java常用API(String类) 概述: java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例 1. 字符串不变:字符串的值在创建后不能被更改 String s1 = "abc"; s1 += "d"; System.out.println(s1); // "abcd" // 内存中有"abc","abcd"…
Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值. 话不多说上代码 改代码的意思是返回一个0-9的整数 public class Test { public static void main(String[] args) { Random ra…
Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档.这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学 习这些类如何使用即可.所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们. 注:javaAPI中的类我们不需要去…
14.常用类 14.1 字符串相关的类 1课时 14.2 JDK 8之前时间日期API 1课时 14.3 JDK8中新时间日期API 1课时 14.4 JDK8中的Optional类 1课时 14.5 Math类 1课时 14.6 BigInteger 类与BigDecimal类 1课时 14-1 字符串相关的类 案例 public class Person { String name; int age; public Person(String name, int age) { super()…
在这一系列博客中,主要是记录在实际开发中会常用的一些Java工具类,方便后续开发中使用. 以下的目录会随着后边具体工具类的添加而改变. 浮点数精确计算 第二章 Java浮点数精确计算 crc32将任意字符串转long型 第十一章 自己实现一致性hash算法 java比较器comparator 第十一章 自己实现一致性hash算法 AES加密 第六章 企业项目开发--cookie 线程安全的Date工具类 第三章 线程安全的DateFormat工具类…
全部章节   >>>> 本章目录 6.1 Object类 6.1.1 Object类概述 6.1.2 Object的常用方法 6.1.3 实践练习 6.2 String类和StringBuffer类 6.2.1 String类构造方法 6.2.2 String类常用方法 6.2.3 StringBuffer类常用方法 6.2.4 实践练习(一) 6.2.5 实践练习(二) 6.3 Math类 6.3.1 Math类运算操作 6.3.2 实践练习 6.4 日期处理类 6.4.1 Da…
1.自动装箱和自动拆箱 自动装箱:基本类型就自动的封装到与它相同类型的包装中:如: 创建一个对象时:Integer i = 100;本质上是编译器编译时为我们添加了:Integer i = new Integer(100); 自动拆箱:包装类对象自动转换成基本类型数据,如: int a = new Integer(100);本质上,编译器为我们添加了:int a = new Integer(100).intValue(); 此类中的方法中的缓存问题 [-128, 127]之间的数,仍然被当做基本…
第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库  如果想要有奇特的绘图功能,网络连接功能和数据库存取功能无需自己动手编写代码 功能齐全的出色语言 高质量的执行环境,提供庞大的库.集多种优势于一身 注:  白皮书:www.oracle.com/technetwork/java/langenv-140151.html  11个关键术语的论述:http://horstma…
1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者到底是什么呢?两者又有什么关系呢? 先来看进程的定义: 进程:进程是操作系统结构的基础:是一次程序的执行:是一个程序机器数据在处理机上顺序执行时所发生的活动:是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位. 初看这个定义会觉得抽象,难以理解,但可以打开Windows任务管理器,那些…
第1章 Java体系结构介绍 Java技术核心:Java虚拟机 Java:安全(先天防bug的设计.内存).健壮.平台无关.网络无关(底层结构上,对象序列化和RMI为分布式系统中各个部分共享对象提供了基础) 1.3 体系机构 Java体系结构中的四个技术: Java程序设计语言 Java class文件格式 Java应用编程接口API Java虚拟机 Java虚拟机和Java API一起组成了Java平台 1.3.1 Java虚拟机 Java面向网络的核心是Java虚拟机:平台无关性.安全性和网…
第一章主要内容: 1.Java的地位:网络地位 语言地位 需求地位 2.Java的特点:①简单 面向对象 平台无关:软件的运行不因操作系统,处理器的变化而无法运行或出现运行错误. ②多线程 动态 3.安装JDK 分为三类版本:①Jave SE ②Jave EE ③Jave ME 4.安装Java SE平台 5.Java程序的开发步骤: ①编写源文件 ②编译Java源文件 ③运行Java程序 上课测试编写的教材上的例题: 6.工具下载安装 http://www.cnblogs.com/rocedu…
说明:本文主要参考自<分布式Java应用:基础与实践> 1.Java代码执行流程 第一步:*.java-->*.class(编译期) 第二步:从*.class文件将其中的内容加载到内存(类加载)(运行期) 第三步:执行代码(运行期) 说明: 整个白框部分表示JVM管理的内存 包含栈帧的地方称作JVM方法栈,一个栈帧就是一个方法 在Hotspot JVM中,JVM方法栈和本地方法栈是同一个 java方法是通过出栈操作来执行的(在类加载后入栈),所以执行引擎直接操作的是栈帧(即一个方法) 具…
1.JAVA分类 JAVA SE:基础核心(面向对象.API.JVM...) JAVA ME:(游戏.通讯开发) JAVA EE(JSP/Sevlet\EJB\服务开发.企业应用)   2.JAVA语言特点 ①面向对象 ②适合分布式计算: java应用程序可以像访问本地文件系统一样通过URL访问远程对象 使用JAVA语言编写Socket通信程序比任何语言都简单 可以使用JAVA小应用程序(Applet).java服务器页面(java Server Page.JSP).Servlet等手段构建丰富…
一.JAVA的特点 简单.面向对象.平台无关.多线程.动态 (平台无关的原因:在操作系统上再提供JRE,只要提供JRE,JAVA编写的软件就能运行) 二.JAVA平台 JAVA SE(标准版).JAVA EE(企业版) 三.开发步骤 编写源文件: 由public类时,以public类作为类名:没有public类时,任选一个类作为类名 (注意将记事本编码改为ANSI) 编译源文件: javac 源文件名.java (以public类的类名作为源文件名称) 运行程序: java class文件名(后…
2017-11-02 21:26:18 Math类:Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. *属性摘要 *常用方法 random() : 返回[0.0,1.0),(n-m)*Math.random()+m ==>[n,m).当然了Java中还有Random类,不过不太好用.…
章节介绍 主要介绍并发编程时间中可能遇到的问题,以及如何解决. 主要问题 1.上下文切换问题 时间片是cpu分配给每个线程的时间,时间片非常短. cpu通过时间片分配算法来循环执行任务,当前任务执行一个时间片之后会切换到下一个任务.但是在切换之前会保存上一个任务的状态,以便再切换到这个任务时候,能够加载这个任务的状态.所以任务从保存再到加载的过程就是一次上下文切换.类似于读英文书时,遇到不懂的单词,记下读到的行数,翻出词典查询,查询完成后再翻到需要阅读的地方进行读取似的. 举例说明 多线程程序不…
1.创建线程的方式: /** * StudySjms * <p> * Created by haozb on 2018/2/28. */ public class ThreadDemo extends Thread { /** * 定义线程的名字 * @param name */ public ThreadDemo(String name) { super(name); } @Override public void run() { ; i < ; i++) { System.out.p…
8.1 等待线程完成的CountDownLatch 作用:让一个线程等待其余线程完成之后在继续执行,如主线程等待开启服务的子线程执行完毕后主线程继续执行,类似于join.…
Java 是由 SUN公司在 1995 年首先发布 的编程语 言和计算平 台.这基础技术 支持最新 的程序 ,包括 实用程序 .游 戏和业 务应用程序 .J ava 在世界各地 的 8.5  亿 多 台个 人计算机和数 十亿 套设备上运行着 ,其l扫 包括移动设备和 电视设备 . Java 之所 以能够得到如此广泛 的应用 ,除 了摆脱硬件平 台的依赖具有 “ 一次编写 .到 处运行 ” 的平 台无关性特性之外 ,另一个 重要原因是 :其丰富而强大的类库 以及众 多第三 方开源类库使得基于 Ja…
目标 重点: 线程安全的概念 线程通信的方式与应用 reactor线程模型 线程数量的优化 jdk常用命令 Netty框架的作用 难点 java运行的原理 同步关键字的原理 AQS的抽象 JUC的源码 网络编程的概念 GC机制 class文件内容 文件开头有一个0xcafebabe特殊的标志. 包含版本.访问标志.常量池.当前类.超级类.接口.字段.方法.属性 把class文件的信息存在方法区里面,有了类 根据类创建对象,存储在堆内存中,垃圾回收就是这里.这是线程共享的部分,随虚拟机或者GC创建…