JDK1.9
cwl_java
这个作者很懒,什么都没留下…
展开
-
JDK1.9-数组的常见操作
3.1 数组越界异常观察一下代码,运行后会出现什么结果。创建数组,赋值3个元素,数组的索引就是0,1,2,没有3索引,因此我们不能访问数组中不存在的索引,程序运 行后,将会抛出 ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一 旦出现了,就必须要修改我们编写的代码。3.2 数组空指针异常观察一下代码,运行后会出现什么结...原创 2019-11-27 10:19:07 · 306 阅读 · 0 评论 -
JDK1.9-数组原理内存图
2.1 内存概述内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程 序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。2.2 Java虚拟机的内存划分为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。JVM的内存划分...原创 2019-11-27 10:08:11 · 418 阅读 · 0 评论 -
JDK1.9-开发工具IntelliJ IDEA
1.1 开发工具概述IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写。所以,需要有JRE运行环境并配置好环境变量。 它可以极大地提升我们的开发效率。可以自动编译,检查错误。在公司中,使用的就是IDEA进行开发。1.2 IDEA软件安装此软件集成了32位和64位,双击 ideaIU-2017.3.2.exe 进入安装。欢迎界面选择安装路径配置安装选项开...原创 2019-11-26 19:59:00 · 731 阅读 · 0 评论 -
JDK1.9-Listener监听器
Listener监听器概念:web的三大组件之一。事件监听机制事件 :一件事情事件源 :事件发生的地方监听器 :一个对象注册监听:将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后,执行监听器代码ServletContextListener:监听ServletContext对象的创建和销毁方法:void contextDestroye...原创 2019-12-04 17:22:34 · 323 阅读 · 0 评论 -
JDK1.9-Filter过滤器
Filter过滤器概念:生活中的过滤器:净水器,空气净化器,土匪、web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。过滤器的作用:一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤…快速入门:步骤:定义一个类,实现接口Filter复写方法配置拦截路径web.xml注解代码:@WebFilter("/*")//...原创 2019-12-04 17:22:21 · 341 阅读 · 0 评论 -
JDK1.9-JDBC连接池
数据库连接池概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处:节约资源用户访问高效实现:标准接口:DataSource javax.sql包下的方法:获取连接:getConnection()归还连接:C...原创 2019-12-04 14:43:54 · 327 阅读 · 0 评论 -
JDK1.9-JDBC
JDBC:概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。快速入门:步骤:导入驱动jar包 my...原创 2019-12-04 14:44:27 · 362 阅读 · 0 评论 -
JDK1.9-MySQL基础
数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL4. 常见的数据库软件 * 参见《MySQL基础.pdf》MySQL数据库软件1. 安装 * 参见...原创 2019-12-04 14:44:44 · 252 阅读 · 0 评论 -
JDK1.9-注解
注解:概念:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。概念描述:JDK1.5之后的新特性说明程序的使用注解:@注解名称...原创 2019-12-04 14:44:54 · 334 阅读 · 0 评论 -
JDK1.9-反射
反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,这就是反射机制好处:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。获取Class对象的方式:Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象多用于配置文件,将类名定义在配置文件中。读取...原创 2019-12-04 14:45:12 · 471 阅读 · 0 评论 -
JDK1.9-Junit单元测试
Junit单元测试:测试分类:黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试:需要写代码的。关注程序具体的执行流程。Junit使用:白盒测试步骤:定义一个测试类(测试用例)建议:测试类名:被测试的类名Test CalculatorTest包名:xxx.xxx.xx.test cn.itcast.test定义测试方法:...原创 2019-12-04 09:41:13 · 467 阅读 · 0 评论 -
JDK1.9-方法引用
在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑 一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑?2.1 冗余的Lambda场景来看一个简单的函数式接口以应用Lambda表达式:在 Printable 接口当中唯一的抽象方法 print 接收一个字符串参数,目的就是为了打印显示它...原创 2019-12-04 09:37:58 · 353 阅读 · 0 评论 -
JDK1.9-网络编程综合案例
第三章 综合案例3.1 文件上传案例文件上传分析图解【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流,写出文件数据到服务器硬盘中。基本实现服务端实现:public class FileUpload_Server { public static void main(Str...原创 2019-12-04 09:20:28 · 300 阅读 · 0 评论 -
JDK1.9-TCP通信程序
第二章 TCP通信程序2.1 概述TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。两端通信时步骤:服务端程序,需要事先启动,等待客户端的连接。客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。在Java中,提供了两个类用于实现TCP通信程序:客户端:java.net.Socket 类表示。创建...原创 2019-12-04 09:20:09 · 511 阅读 · 0 评论 -
JDK1.9-Stream流
说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带 来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。1.1 引言传统集合的多步遍历代码几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元 素进行操作的时候,除了必...原创 2019-12-04 09:14:14 · 456 阅读 · 0 评论 -
JDK1.9-常用函数式接口
JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在 java.util.function 包中被提供。 下面是最简单的几个接口及使用示例。3.1 Supplier接口java.util.function.Supplier<T> 接口仅包含一个无参的方法: T get() 。用来获取一个泛型参数指定类型的对 象数据。由于这是一个函数式接口,这也就意味着对应的...原创 2019-12-04 09:21:21 · 493 阅读 · 0 评论 -
JDK1.9-函数式编程
在兼顾面向对象特性的基础上,Java语言通过Lambda表达式与方法引用等,为开发者打开了函数式编程的大门。 下面我们做一个初探。2.1 Lambda的延迟执行有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费。而Lambda表达式是延迟执行的,这正好可以 作为解决方案,提升性能。性能浪费的日志案例注:日志可以帮助我们快速的定位问题,记录程序运行过程中的情况,以便项目的监控和优化...原创 2019-12-04 09:21:05 · 386 阅读 · 0 评论 -
JDK1.9-函数式接口
1.1 概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。备注:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,...原创 2019-12-04 09:20:49 · 337 阅读 · 0 评论 -
JDK1.9-网络编程入门
第一章 网络编程入门1.1软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I4W8REjW-1575344968236)(img/1_cs.jpg)]B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、...转载 2019-12-04 09:14:57 · 225 阅读 · 0 评论 -
JDK1.9-打印流
第四章 打印流4.1 概述平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式。4.2 PrintStream类构造方法public PrintStream(String fileName): 使用指定的文件名创建一个新的打印流。构造举例,代码如...原创 2019-12-04 09:14:38 · 254 阅读 · 0 评论 -
JDK1.9-序列化
第三章 序列化3.1 概述Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。看图理解序列化:3.2 O...原创 2019-12-03 09:17:21 · 261 阅读 · 0 评论 -
JDK1.9-转换流
第二章 转换流2.1 字符编码和字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,...原创 2019-12-03 09:12:37 · 358 阅读 · 0 评论 -
JDK1.9-缓冲流
第一章 缓冲流昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:...原创 2019-12-03 09:11:44 · 247 阅读 · 0 评论 -
JDK1.9-属性集
第五章 属性集5.1 概述java.util.Properties 继承于Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个Properties对象。5.2 Properties类构造方法public Properties() :...原创 2019-12-03 09:09:35 · 246 阅读 · 0 评论 -
JDK1.9-IO异常的处理
第四章 IO异常的处理JDK7前处理之前的入门练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用try...catch...finally 代码块,处理异常部分,代码使用演示:public class HandleException1 { public static void main(String[] args) { // 声明变量 Fil...转载 2019-12-03 09:09:07 · 406 阅读 · 0 评论 -
JDK1.9-字符流
第三章 字符流当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。3.1 字符输入流【Reader】java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。...原创 2019-12-03 09:08:41 · 207 阅读 · 0 评论 -
JDK1.9-字节流
第二章 字节流2.1 一切皆为字节一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。2.2 字节输出流【OutputStream】java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定...原创 2019-12-03 09:08:28 · 272 阅读 · 0 评论 -
JDK1.9-IO概述
第一章 IO概述1.1 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流...原创 2019-12-03 09:08:08 · 335 阅读 · 0 评论 -
JDK1.9-File综合案例
File综合案例3.1 文件搜索搜索D:\aaa 目录中的.java 文件。分析:目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。代码实现:public class DiGuiDemo3 { public static void main(String[] args) { // 创建Fil...原创 2019-12-03 09:07:35 · 312 阅读 · 0 评论 -
JDK1.9-File递归
递归2.1 概述递归:指在当前方法内调用自己的这种现象。递归的分类:递归分为两种,直接递归和间接递归。直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。构造方法,禁止递归...原创 2019-12-03 09:07:12 · 290 阅读 · 0 评论 -
JDK1.9-常用类File
File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。1.2 构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(String parent, String child) :从父路径名字符串和子路径名字符串...原创 2019-12-02 17:45:36 · 261 阅读 · 0 评论 -
JDK1.9-Lambda表达式
Lambda表达式3.1 函数式编程思想概述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZOJfF2lb-1575278902055)(img/03-Overview.png)]在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法—...原创 2019-12-02 17:29:20 · 320 阅读 · 0 评论 -
JDK1.9-线程池
线程池2.1 线程池思想概述我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的...原创 2019-12-02 17:27:29 · 268 阅读 · 0 评论 -
JDK1.9-等待唤醒机制
等待唤醒机制1.1 线程间通信**概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fny4wOod-157527865658...原创 2019-12-02 17:24:32 · 308 阅读 · 0 评论 -
JDK1.9- 线程状态
3.1 线程状态概述当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中, 有几种状态呢?在API中 java.lang.Thread.State 这个枚举中给出了六种线程状态:这里先列出各个线程状态发生的条件,下面将会对每种状态进行详细解析我们不需要去研究这几种状态的实现原理,我们只需知道在做线程操作中存在这样的状态。那我们怎么去理解这几 个...原创 2019-12-02 14:14:22 · 344 阅读 · 0 评论 -
JDK1.9-线程安全
2.1 线程安全如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样 的,而且其他的变量的值也和预期的是一样的,就是线程安全的。我们通过一个案例,演示线程的安全问题:电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个 (本场电影只能卖100张票)。我们来模拟电影院的售票窗口,实现多个窗口...原创 2019-12-02 14:03:58 · 384 阅读 · 0 评论 -
JDK1.9-多线程原理
昨天的时候我们已经写过一版多线程的代码,很多同学对原理不是很清楚,那么我们今天先画个多线程执行时序图 来体现一下多线程程序的执行流程。代码如下:自定义线程类:public class MyThread extends Thread { /** * 利用继承中的特点 * 将线程名称传递 进行设置 */ public MyThread(String name)...原创 2019-12-02 12:48:10 · 351 阅读 · 0 评论 -
JDK1.9-多线程
多线程我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计?要解决上述问题,咱们得使用多进程或者多线程来解决.4.1 并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6x1h8liQ-1...原创 2019-12-02 09:49:02 · 306 阅读 · 0 评论 -
JDK1.9-自定义异常
自定义异常3.1 概述为什么需要自定义异常类:我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数...原创 2019-12-02 09:45:50 · 376 阅读 · 0 评论 -
JDK1.9-异常的处理
异常的处理Java异常处理的五个关键字:try、catch、finally、throw、throws2.1 抛出异常throw在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来。这时需要使用抛出异常的方式来告诉调用者。在java中,...原创 2019-12-02 09:45:00 · 1611 阅读 · 0 评论