概述 常用的多线程实现方式有2种: 1. 继承Thread类 2. 实现Runnable接口 之所以说是常用的,是因为通过还可以通过JUC(java.util.concurrent)包中的线程池来实现多线程.关于线程池的内容,我们以后会详细介绍:现在,先对的Thread和Runnable进行了解. Thread简介 Thread 是一个类.Thread本身就实现了Runnable接口.它的声明如下: public class Thread implements Runnable {} Threa…
Java基础-考察JVM内部结构的常用工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们可以通过jvisualvm.exe考察jvm内部结构.而jvisualvm.exe这个程序存放在JDK的安装目录下的bin目录中.当然在JDK的安装目录下的bin目录中还有jmap以及jconsole两个工具都是可以查看JVM的堆内存结构的哟!接下来我会为大家展示这三个工具的方法,他们各自有各自的优点,如果是Windows开发环境的话,我个人比较喜欢jvisualvm的,如果在L…
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String s2 = “hello”:结论:s1 == s2. 字符串常量放在data区. 3. String s3 = new String("hello"); String s4 = new String("hello");结论:s3 != s4.但s3.equals(s4).…
JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog.csdn.net/m366917 我们来继续学习多线程 Lock锁的使用 尽管我们能够理解同步代码块和同步方法的锁对象问题,可是我们并没有直接看到在哪里加上了锁.在哪里释放了锁.为了更清晰的表达怎样加锁和释放锁.JDK5以后提供了一个新的锁对象Lock Lock void lock():获取锁 v…
java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换句话说,就是数组中的数组,数组里面存储的还是数组.数组中的元素类型可以是基本数据类型,也可以是引用数据类型,当元素类型是一维数组时,就构成了二维数组. 一.二维数组的定义 定义方式和以为数组很相似,比如“int[][] arr = new int[3][4];”,其中“[3]”表示:二维数组中,有三…
一.java基础知识 1.一个文件中只能有一个public的类,因为他的类名要求和文件名相同. 2.classpath变量可以设置其它目录下的类. 例如:类文件所在目录是:F:\Javajdk,那么没有设置classpath变量时,在F:\下是访问不到类文件的.可以通过以下方式设置classpath变量,就可以访问不同目录的文件(注意classpath变量中等号的左边和右边的目录文件名称中间是不能有空格,例如一个名为“my Java”的文件夹是不可以的): a.当前目录为F:\的目录下,设置 s…
1.Java语言语法规则和文件格式: 第一个Java程序:/** 第一个Java程序:控制台输出Hello world!*/public class Test{    //访问修饰符 class关键词用于声明类使用 后面跟类名   public static void main(String args[]){//程序的入口,主函数main方法:        System.out.println(“Hello world!”);// 输出语句   }} Java语言区分大小写:public 为访…
JAVA编程练习(二) 今天我为了巩固之前的java基础知识的学习,再次进行实战演习,编写了一个小小的java控制台程序,主要是运用java面向对象的思想来完成这个小项目. 一.项目背景介绍 根据所学知识,编写一个控制台板的"答答租车系统"     功能:  1.展示所有可租车辆  2.可以选择车型和租车量  3.展示租车清单,包含:总金额.总载货量及其车型.总人量及车型 二.项目分析 (1)数据模型分析 1.通过对现实世界的事与物主要特征的分析.抽象,为信息系统的实施提供数据存取的数…
Java语言的特点: Java语言是简单的 Java语言是面向对象的 Java语言是跨平台(操作系统)的(即一次编写,到处运行) Java是高性能的 运行Java程序要安装和配置JDK jdk是什么? jdk是Java开发工具包: jdk包括jre(Java runtime envirnment)Java运行环境.一堆Java工具和Java基础的类库(类共3600左右,常用类在150个左右) 开发安装jdk,用户执行时需要安装jre 配置jdk: 添加环境变量即可——添加path将JDK所在路径…
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰…
概述 并发处理本身就是编程开发重点之一,同时内容也很繁杂,从底层指令处理到上层应用开发都要涉及,也是最容易出问题的地方.这块知识也是评价一个开发人员水平的重要指标,本人自认为现在也只是学其皮毛,因此本文重点介绍java的并发相关体系,具体的点懂得就多讲,不懂得就给出参考文章.先来看图: 本文重点介绍jdk中concurrent的内容,并发相关基础不在介绍,如果想系统的学习,建议直接看并发大作<java并发编程实践>吧(之前看过,可惜很多地方没懂),博客终究只是快餐,增强学习拓展知识很好,但打基…
一.java基本数据类型所占的内存大小 在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符 单元的字符类型和1种用于表示真值的boolean类型.(一个字节等于8个bit) 1.整型 类型              存储需求     bit数    取值范围                备注 int                  4字节          4*8  short             2字节          2*8  …
一.缓冲流 1.1.字符流的缓冲区 缓冲区的出现是为了提高IO的读写效率 对应类 BufferedReader BufferedWriter 缓冲区要结合流才可以使用 在流的基础上对流的功能进行了增强 1.2.BufferedReader.BufferedWriter public class BufferedWriterextends Writer 构造方法摘要 BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流. BufferedWriter…
JAVA语言 未经本人允许禁止转载或使用 基础知识:JAVA数据类型,运算符,流程控制等 注释: // 单行注释 /* 多行连续注释 ... */ /** 文档注释,该类型的注释会生成一个html文件 ... */ 分隔符 ,用于变量声明分割 . 将包及其子包名分开 ; 表示一条语句结束,每条语句后面都要加: () 在方法定义和调用中包含参数:在控制语句中包含表达式. {} 包含自动初始化数组的值 [] 声明数据类型:也可表示撤销对数组值得引用 标识符:是赋予变量.类.方法和对象的名称 标识符以…
一.事件监听机制 -- 事件源:awt 或swing包中的那些图形界面组件,即发生事件的组件 -- 事件:Event  用户对组件的一个操作 -- 监听器:Listener  负责处理事件的方法 二.java.awt.event 包下的类 WindowEvent  //窗口事件,比如用户点了半闭窗口,窗口得到或失去焦点,最大化最小化等 MouseEvent  //鼠标事件,鼠标按下,鼠标释放,点击(按下后再松开)等 ActionEvent  //动作事件,它不是代表一个具体动作,而是一种语义,比…
一.线程的优先级别…
一.缓冲流的使用 每个字节流都有对应的缓冲流: BufferedInputStream / BufferedOutputStream 构造器: 方法摘要与对应节点流类似 使用缓冲流实现文件复制:实际中也是:其中流的关闭只需要关闭缓冲流,内部嵌套的字节流会自动关闭. @Test public void testBuffered1() { // 同样需要先关联文件,注意文本使用Reader Writer,非文本使用fis fos File file1 = new File("D:\\test\\1.…
线程与并发 Thread 基本概念 程序: 一组计算机能识别和执行的指令 ,是静态的代码. 进程: 程序的一次运行活动, 运行中的程序 . 线程: 进程的组成部分,它代表了一条顺序的执行流. 进程线程联系: ① 线程是进程的最小执行和分配单元,不能独立运动,必须依赖于进程.众多的线程组成了进程. ② 资源分配给进程,同一进程的所有线程共享该进程的所有资源. 进程线程区别: ① 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 ② 并发性:不仅进程之间可以并发执行,同一个进程的多个线…
数组 数组概述 定义 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组声明创建 首先必须声明数组变量,才能在程序中使用数组.下面是声明数组变量的语法: dataType[] arrayRefVar;//首选的方法 或 dataType arrayRefVar[];//效果相同,但不是首选方法 Java语言使用new操作符来创建数组,语法如下: dataType[] a…
常用API第一部分 第1节 Scanner类         day07_01_API概述和使用步骤(使用最基本的三个步骤 搜索 构造方法  方法) day07_02_Scanner概述及其API文档的使用 day07_03_Scanner的使用步骤 day07_04_Scanner练习一_键盘输入两个数字求和 day07_05_Scanner练习二_键盘输入三个数字求最大值 第2节 匿名对象         day07_06_匿名对象的说明 day07_07_匿名对象作为方法的参数和 第3节…
第21章节 并发 1. 定义任务 任务:任务就是一个执行线程要执行的一段代码.(在C语言中就是函数指针指向的某个地址开始的一段代码) [记忆误区]:任务不是线程,线程是用来执行任务的.即任务由线程驱动.在顺序编程中,因为就只有一个执行线程,所有的程序代码都由该执行线程执行,所有的这些程序代码就可以看成一个任务.而并发编程可以使我们将原本的一个大的程序代码划分为多个分离的.独立的部分.这些独立部分(被称为子任务)中的每一个都可以由一个执行线程来执行. 在java中任务是由Runnable接口来描述…
1.Java中Static的相关用法总结?(静态方法:静态变量:静态代码块) public static void main(String args[])执行的关键,在于有static.有了static之后,我们的public class不需要创建类的对象,即可以使用main方法.所以,引入了static,无需本类的对象,即可调用此方法.System.out.println,在系统这个方法中,我们查看API,可以得到out是System类的静态变量,println是out的方法. 静态变量,多一…
Java语法基础 数据类型.类型转换.运算符.逻辑运算符.参考C#,基本一致 输入输出 输出 System.out.print("abc"); System.out.printf("%d", 10); 输入 import java.util.*; Scanner sc =new Scanner(System.in); int scanInt=sc.nextInt(); 数组 Java 中定义数组的语法有两种: type arrayName[]; type[] arr…
一.TreeSet 1.1.TreeSet Set:hashSet:数据结构是哈希表.线程是非同步的.        保证元素唯一性的原理:判断元素的HashCode值是否相同.         如果相同,还会判断元素的equals方法是否为true;       TreeSet: 可以去Set集合中的元素时行 排序. 使用二叉树的数据结构.      保证元素唯一性的依据:compareTo()方法return 0 使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Compar…
---------- android培训.java培训.期待与您交流! ---------- 一.异常机制 (一)异常概述 1.异常:就是程序在运行时出现不正常情况. 2.异常类:程序在运行时,出现的不正常情况,将情况用java的类的形式进行描述.并封装成对象. (二)异常分类 对异常问题的分类:“严重的的Error”和“不严重的Exception” (1)一种是严重的问题:对于严重的问题,java通过Error类进行描述. (2)一种是不严重的问题:对于非严重的,java通过Exception…
一.数据类型 1.常量 在程序运行的过程中,值不会发生改变的标识符 常量的分类:整数常量.小数常量.布尔值常量.字符常量.字符串常量.null常量 2.变量 表示的值可以发生改变 定义一个变量,需要在内存[运算区域]中开辟一个空间,将不确定的数据存储到这个空间中 语法:数据类型 标识符 = 数值 特点:a.变量的值是可以变动的 b.需要在内存中开辟空间 c.命名规范:小驼峰命名.例如:gradeNum 3.数据类型 Java语言是强类型语言,每一种数据都定义了明确的数据类型,在内存中分配了不同大…
一.字节流 字节流是通过字节来进行读写操作的,他的使用对象相比于字符流来说更加的广泛.这主要是因为他们读写文件的方式而决定的.字符流读写文件时是将读取到的字节通过默认编码表转换成字符,在通过默认编码表将字符转换成字节存储到文件里,在这个过程中虽然提高了文本文档的读写效率,但是在面对非文本文件时 - 字节转换成字符的这个操作因为编码表的原因可能会造成丢失字节,导致文件的缺失.所以在对非文本文档进行操作时要使用字节流. 二.InputStream类 此抽象类是字节输入流的所有类的超类(读),其常用子…
前言 在上一篇中,回顾了Java的基本数据类型 ,这篇就来回顾下Java中的一些修饰符以及String. 修饰符介绍 Java修饰符主要分为两类: 访问修饰符 非访问修饰符 其中访问修饰符主要包括 private.default.protected.public. 非访问修饰符主要包括 static.final.abstract.synchronized. 访问修饰符 访问修饰符可以使用下图这张表来说明访问权限: 修饰符 当前类 同一包内 子类 其它包 public Y Y Y Y protec…
基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等.那么,想实现字符串与基本数据之间转换怎么办呢?Java中提供了相应的对象来解决该问题,基本数据类型对象包装类:java将基本数据类型值封装成了对象.封装成对象有什么好处?可以提供更多…
一.网络编程基础 1.概念 所谓计算机网络,就是把分布在不同区域的计算机与专门的外部设备使用通信线路连接成一个规模大,功能比较强的网络系统,从而使得计算机之间可以相互通信,共享资源 所谓的网络编程,在同一个网络中不同的机器之间进行通信 2.计算机之间进行通信的必要条件 ip地址,端口,网络协议 1>ip地址 ip地址其实就是计算机在网络中的地址,是一个32位的二进制数,通常被分为4个8位二进制 一台计算机在网络中的地址,在同一个网段内,ip地址是唯一的 ipv4:由4个字节组成,分为四段 ipv…