Java自学第8期——多线程】的更多相关文章

1.多线程: 操作系统支持同时运行多个任务,一个任务通常是一个程序,所有运行中的程序就是一个进程().程序内部包含多个顺序执行流,每个顺序执行流就是一个线程. 并发:两个或者多个事件在同一个时间段内交替发生: 并行:两个或者多个事件在同一时刻同时发生: 某时间段内宏观上有多个程序同时运行,在单cpu系统中,每一时刻只有单个程序在运行,但在微观上cpu是交替执行他们的. 多cpu系统中,这些多任务被分配到多个cpu上,这样多个任务就是同时运行. 1.1 线程与进程 进程:进程是并发执行程序在执行过…
集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致. 在开发中一般当对象多的时候,使用集合进行存储. 集合按照其存储结构可以分为两大类,分别是 单列集合java.util.Collection和双列集合java.util.Map, 综述: 根接 口 Collection Map 子接口 List.Set…
1.概念: 异常 :指的是程序在执行过程中,出现的非正常的情况,终会导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类, 产生异常就是创建异常对象并抛出了一个异常对象. Java处理异常的方式是中断处理. 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行. 2.Throwable体系: 所有异常或错误的超类:java.lang.Throwable ,其下有两个子类: java.lang.Error 与 java.lang.Exception…
1.IO简介 IO(输入输出)通过java.io包下的类和接口来支持,包下包括输入.输出两种IO流,每种输入输出流又可分为字符流和字节流两大类. 2.File类 File类是io包下与平台无关的文件和目录,File能新建.删除.重命名文件和目录,不能访问文件本身,后者需要使用输入输入流. 2.1 构造方法 File类的构造方法: File(File parent, String child) 参数:父路径,子路径 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实…
一.Object类 作用:对象操作 位置:java.lang.Object 方法: public String toString() :返回对象的字符串表示形式. public boolean equals(Object obj): 指示是否有其他对象"等于"这一个. 注意:Object类里的toString方法 Object类是所有类的终极父类. person类默认继承了Object类,所以可以使用Objcct类里的方法,返回该对象的字符串表示.通常,toString 方法会返回一个…
一.Scanner类 1.api简介: 应用程序编程接口 2.Scanner类: 作用:获取键盘输入的数据 位置: java.util.Scanner. 使用:使用成员方法nextInt() 和 next() 分别接收整型和字符串类型数据 //将Scanner类实例化,并用System.in表示键盘输入 Scanner scanner = new Scanner(System.in); //使用成员方法nextInt() 和next() 分别接收整型和字符串类型数据 int num = scan…
一.继承: 关键字extends /* 定义一个父类:人类 定义父类格式:public class 父类名称{ } 定义子类格式:public class 子类名称 extends 父类名称{ } */ 代码示范: *要点: 1.子类中在main方法中创建父类对象可调用父类方法: 2.不加关键字直接访问本方法局部变量(可重名时区分): 3.使用this关键字访问本类成员变量(可重名时区分): 4.使用super关键字访问父类成员变量(可重名时区分): 5.如果存在方法的重名:父类与子类有重名方法…
2.1.注释 注释用于说明某段代码的作用,某个类的用途,某个方法的功能,参数和返回值数据类型的意义等等: 注释非常非常非常重要,回顾代码时通过注释找回思路:团队沟通需要,让别人读懂你的代码,增加效率: 可读性第一,效率第二! 注释类型: 单行注释:// 多行注释:/* */ 举例: 2.2.数据类型 2.2.1.分类: 基本类型:boolean类型 + 数值类型 boolean类型:boolean 数值类型:整型( byte.short.int.long.char ).浮点型( float.do…
1.入门 使用场景:如果创建函数式接口(该接口的抽象方法只能有一个)的实例时,使用Lambda表达式更加简洁方便. 2.格式: (形参列表) -> { 代码块 } 3.简化 只有一个参数时,可以省略圆括号(); 代码块只有一条语句,可以省略花括号{}: 代码块里只有一个语句时,即是需要return,也可以省略return关键字(仅仅是关键字), 需要返回值时自动返回这条省略了return的语句的值. 4.限制: 1.Lambda表达式的类型必须是函数式接口(不是的话可以强制类型转换,但与目标类型…
前言篇 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达). 无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不自由:自学又不知道如何下手,担心自己坚持不下来.怎么办呢? 本文将解答你自学Java的N种问题: 你适不适合自学Java呢? 如何自学Java呢? 有没有靠谱的Java自学资料推荐? 怎样让自己看到进步,坚持下来? -- 以上问题,课程中我都会呕心给你梳理答案,赶快开始学习吧. 什么人适合自学Jav…
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势. 一些新闻文章很有可能是枪手写的,不必太过相信.国外背景的…
JAVA自学笔记19 1.集合总结 Collection(单列集合) List(有序可重复) ArrayList:底层数据结构是数组 ,查询快,增删慢.线程不安全,效率高 Vector:底层数据结构是数组,查询快,增删慢.线程不安全,效率低 LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高 Set(无序唯一) HashSet:底层数据结构是哈希表,哈希表依赖两个方法:hashCode()和equals() 执行顺序:首先判断hashCode()值是否相同,是则继续执行…
JAVA自学笔记23 1.多线程 1)引入: 2)进程 是正在运行的程序.是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和系统资源. 多进程: 单进程的计算机只能做一件事情,而现在的计算机都可以做多件事情.CPU在某个时间点上只能做一件事.每一个进程都有它自己的内存空间和系统资源. 3)多线程 -是进程中的单个顺序控制流,是一条执行路径 -一个进程如果只有一条执行路径,则称为单线程程序.一个进程如果有多条执行路径,称为多线程程序. 4)并行与并发 前者是逻辑上同时发生,指在某…
JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()//获取锁 void unlock()//释放锁 ReentrantLock:实现类 public class SellTicketDemo{ public stsatic void main(String args[]){ Thread t1=new Thread(st,"窗口1"); T…
JAVA自学笔记26 1.网络编程 1)用来实现网络互联的不同计算机上运行的程序可以进行数据交换 2)网络模型一般泛指 OSI:(Open System Interconnection)开放系统互联参考模型 TCP/IP参考模型 3)网络编程三要素 IP地址.端口.协议 ①IP地址:在TCP/IP协议中网络通信中的计算机的唯一标识号 java提供类InetAddress供使用. 为了方便用4个十进制数表示 网络号段+主机号段 IP分类: 见书 ipconfig–查看本机IP地址 ping ip地…
作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势. 一些新闻文章很有可能是枪手写的,不必太过…
Java自学之路(新手一定要看) 转自尚学堂 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势. 一些新闻文章…
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势. 一些新闻文章很有可能是枪手写的,不必太过相信.国外背景的…
Java自学不是一朝一夕的事情.可以采用"懒开始"的方法,但是必须要坚持下去,才能真正自学Java掌握编程技术.那些企图学几天去包装一下找工作的,请绕道.如果你下定决心自学Java,那么这套Java自学路线图绝对是你系统性.全面自学的最佳选择! Java自学路线是螺旋上升的,需要耗费的时间和精力不比其他学科的少,但由于其稳健性的特点使其成为企业开发的刚需编程语言.从网上看到发布Java自学路线图的很多,但大部分学习路线图是很零碎的,没有系统的自学目标和自学中需要掌握的重点知识. 黑马程…
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这个问题应该这么问--sleep和wait有什么相同点.因为这两个方法除了都能让当前线程暂停执行完,几乎没有其它相同点. wait方法是Object类的方法,这意味着所有的Java类都可以调用该方法.sleep方法是Thread类的静态方法. wait是在当前线程持有wait对象锁的情况下,暂时放弃锁…
 道可道非常道,名可名非常名. Java自学之道博大精深,自己只是将理论和实际相结合,进行了简单总结. Java自学之道全文可在自己的博客下载 http://my.oschina.net/mkh/blog/340689…
JAVA自学之路 一:学会选择  决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等.  JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通.如何学习程序设计理所当然也有许多共通的地方.  1.1 培养兴趣 兴趣是能够让你坚持下去…
本文转载自:http://www.linuxidc.com/Linux/2013-12/93690.htm#0-tsina-1-14812-397232819ff9a47a7b7e80a40613cfe1 Java中有两种实现多线程的方式.一是直接继承Thread类,二是实现Runnable接口.那么这两种实现多线程的方式在应用上有什么区别呢? 为了回答这个问题,我们可以通过编写一段代码来进行分析.我们用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线…
java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public static void main(String[] args) { Date date  = new Date(); System.out.println("当前日期:"+date); //当前日期:Thu May 16 23:00:57 CST 2013 } } 二.Calendar类…
  关键词:线程.Thread.Runnable.sleep().yield().join().同步   一.线程的概述 在一个操作系统中,每个独立执行的程序都可以称为一个进程,也就是"正在运行的程 序".而在进程中还可以有多个执行单元同时执行,这些执行单元可以看作程序执行的一条 条线索,被称为线程.Java 运行环境是一个包含了不同的类和程序的单一进程.线程可以被 称为轻量级进程.线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源. 二.线程的创建 1.Java提供了两…
CountDownLatch介绍 在前面的Java学习笔记中,总结了Java中进行多线程同步的几个方法: 1.synchronized关键字进行同步. 2.Lock锁接口及其实现类ReentrantLock.ReadWriteLock锁实现同步. 3.信号量Semaphore实现同步. 其中,synchronized关键字和Lock锁解决的是多个线程对同一资源的并发访问问题.信号量Semaphore解决的是多副本资源的共享访问问题. 今天,来学习一下Java中的另外一个多线程同步辅助类:Coun…
JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法被重写 4)变量为常量,其值不可被改变 修饰引用类型时:引用类型的地址值不能变但其成员变量(堆内存的值)等是可以变的 5)初始化时机: 被final修饰的变量只能赋值一次 在构造方法完毕前修饰变量,避免其被构造方法改变(非静态的常量) 3.多态 1)某一个事物,在不同时刻表现出不同的状态 2)前提与…
JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return 返回值: } ①修饰符:对于初学者使用public static ②返回值类型:方法结果的类型 ③方法名符合命名规则即可 ④实际参数:实际参与运算的 形式参数:定义在方法上的,用于接收实际参数 ⑤方法定义在类中但在主方法外 3)调用方式: 单独调用:方法名(变量名1,变量名2,-)一般没有意义 输出…
JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维数组 n表示每个一维数组的元素个数 存储图解: eg:int[][]arr = new int[3][3]; 意义:定义了一个二维数组名为arr,这个二维数组有3个一维数组,名称是arr[0].arr[1].arr[2],每个数组有3个元素,可通过arr[m][n]来访问相应m+1.n+1元素 区分…
JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+1 break; } 2)注意事项: 表达式结果类型:byte/short/int/char/枚举/string case 后只能跟常量表达式而不能接变量,不能接相同的常量表达式 default可以在任意位置,但它总是最后执行的 switch 语句是以break 语句为结束而不是default @例…