![](https://img-blog.csdnimg.cn/20190829170635789.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
※编程筑基专题※
不爱我就写代码
给自己定一个小目标:成为架构师
展开
-
【JavaSe】网络编程篇(四) 使用网络编程模拟B/S服务器
JavaSe·网络编程篇(四) 使用网络编程模拟B/S服务器1. 分析模拟服务器端,ServerSocket类监听端口,使用浏览器访问public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(8000); Socket socket = serv...原创 2019-09-02 23:39:41 · 518 阅读 · 3 评论 -
【JavaSe】I/O篇(九) 序列化流
JavaSe·I/O篇(九) 序列化1. 序列化概述Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的类型 和 对象中存储的属性 等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。 对象的数据 、 对象的类型 和 对象中存储的数据 信息,都可...原创 2019-08-26 19:41:04 · 521 阅读 · 0 评论 -
【JavaSe】I/O篇(八) 转换流
JavaSe·I/O篇(八) 转换流1. 字符编码和字符集1.1 字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号。反之,...转载 2019-08-26 19:15:47 · 580 阅读 · 0 评论 -
【JavaSe】I/O篇(七) 缓冲流
JavaSe·I/O篇(七) 缓冲流1. 缓冲流概述缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流: BufferedInputStream , BufferedOutputStream字符缓冲流: BufferedReader , BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大...原创 2019-08-26 18:50:54 · 517 阅读 · 0 评论 -
【JavaSe】I/O篇(六) Properties属性集
JavaSe·I/O篇(六) Properties属性集1. 属性集指用键值结构存储数据,每个键及其对应值都是一个字符串的一个集合2. Properties类2.1 概述java.util.Properties 继承于 Hashtable ,来表示一个持久的属性集,该类也被许多Java类使用,比如获取系统属性时, System.getProperties 方法就是返回一个 Prope...原创 2019-08-26 15:47:28 · 569 阅读 · 0 评论 -
【JavaSe】I/O篇(五) IO异常的处理
JavaSe·I/O篇(五) IO异常的处理1. 常规处理编写IO代码时,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用 try…catch…finally 代码块,处理异常部分public static void main(String[] args) { // 声明变量 FileWriter fw = null; try { //创建流对象 fw = new ...原创 2019-08-26 15:28:32 · 606 阅读 · 0 评论 -
【JavaSe】I/O篇(四) 字符流
JavaSe·I/O篇(四) 字符流1. 字符流概述当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。2. 字符输入流——Readerjava.io.Reader 抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存...原创 2019-08-26 15:17:06 · 575 阅读 · 0 评论 -
【JavaSe】I/O篇(三) 字节流
JavaSe·I/O篇(三) 字节流1. 一切皆为字节一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。2. 字节输出流——OutputStreamjava.io.OutputStream 抽象类是表示字节输...原创 2019-08-26 14:57:39 · 571 阅读 · 0 评论 -
【JavaSe】I/O篇(二) IO流概述
JavaSe·I/O篇(二) IO流1. 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为 输入input 和 输出ou...原创 2019-08-26 13:48:11 · 607 阅读 · 0 评论 -
【JavaSe】I/O篇(一) File类
JavaSe·I/O篇(一) File类1. File类概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。2. 构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(String parent, String child)...原创 2019-08-26 13:35:22 · 547 阅读 · 0 评论 -
【JavaSe】面向对象篇(十四) 异常
JavaSe·面向对象篇(十四) 异常1. 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Ja...原创 2019-08-26 09:47:54 · 690 阅读 · 0 评论 -
【JavaSe】容器篇(六) Map集合
JavaSe·容器篇(五) Map集合1. Map集合概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map 接口。我们通过查看 Map 接口描述,发现 Map 接口下的集合与 Collection 接口下的集合,它们存储...原创 2019-08-26 01:02:21 · 572 阅读 · 0 评论 -
【JavaSe】容器篇(五) Collections工具类
JavaSe·容器篇(五) Collections工具类1.概述java.utils.Collections 是集合工具类,用来对集合进行操作。2. 常用功能public static boolean addAll(Collection c, T… elements) :往集合中添加一些元素。public static void shuffle(List<?> lis...原创 2019-08-26 00:02:03 · 622 阅读 · 0 评论 -
【JavaSe】容器篇(四) Set集合
JavaSe·容器篇(四) Set集合1. Set接口java.util.Set 接口和 java.util.List 接口一样,同样继承自 Collection 接口,它与 Collection 接口中的方法基本一致,并没有对 Collection 接口进行功能上的扩充,只是比 Collection 接口更加严格了。与 List 接口不同的是, Set 接口中元素无序,并且都会以某种规则...原创 2019-08-25 23:49:56 · 813 阅读 · 0 评论 -
【JavaSe】容器篇(三) List集合
JavaSe·容器篇(三) List集合1. List接口介绍java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺...原创 2019-08-25 22:07:35 · 514 阅读 · 0 评论 -
【JavaSe】高级特性篇(一) Java高级特性泛型
JavaSe·特性篇(一) 泛型1. 泛型概述我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。public static void main(String[] args) { Collection coll = new ArrayList(); coll.add(...原创 2019-08-25 15:21:11 · 637 阅读 · 0 评论 -
【JavaSe】容器篇(二) Iterator迭代器
JavaSe·容器篇(二) Iterator迭代器1. Iterator接口在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator 。 Iterator 接口也是Java集合中的一员,但它与 Collection 、 Map 接口有所不同,Collection 接口与 Map 接口主要用于存储元素,而 Iterator ...原创 2019-08-25 12:00:18 · 1197 阅读 · 0 评论 -
【JavaSe】I/O篇(十) 打印流
JavaSe·I/O篇(十) 打印流1. PrintStream类平时我们在控制台打印输出,是调用 print 方法和 println 方法完成的,这两个方法都来自于java.io.PrintStream 类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式。2. PrintStream构造方法public PrintStream(String fileName) : 使用...原创 2019-08-26 19:44:06 · 696 阅读 · 0 评论 -
【JavaSe】高级特性篇(二) Java高级特性枚举
JavaSe·高级特性篇(二) Java高级新特性注解1. 为什么需要枚举一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值。此类问题在JDK 1.5 以前采用自定义带有枚举功能的类解决,Java 5.0以后可以直接使用枚举予以解决。 JDK 1.5 新增的Enum 关键字用于定义一个枚举类。2. 枚举的使用类的对象只有有限个,确定的。举例如下:星期:Monday...原创 2019-08-27 13:30:53 · 532 阅读 · 0 评论 -
【JavaSe】网络编程篇(三) 使用网络编程完成文件上传
JavaSe·网络编程篇(三) 使用网络编程完成文件上传1. 文件上传分析图解【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流,写出文件数据到服务器硬盘中。2. 基本实现文件上传服务端实现:public class FileUpload_Server { public st...原创 2019-09-02 23:09:49 · 416 阅读 · 0 评论 -
【JavaSe】网络编程篇(二) TCP通信程序
JavaSe·网络编程篇(二) TCP通信程序1. TCP通信概述TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)*** 两端通信时步骤:服务端程序,需要事先启动,等待客户端的连接。客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。在Java中,提供了两个类用于实现TCP通信程序:客户端: ...原创 2019-09-02 21:56:14 · 261 阅读 · 0 评论 -
【JavaSe】网络编程篇(一) 网络编程入门
JavaSe·网络编程篇(一) 网络编程入门1. 软件结构C/S结构:全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、百度网盘等软件B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通...原创 2019-09-02 21:06:24 · 340 阅读 · 0 评论 -
【JavaSe】高级特性篇(十五) Java12新特性Switch表达式
JavaSe·高级特性篇(十五) Java12新特性Switch表达式前言:JDK12发布2019年3月20日,Java 12 正式发布了新特性:Switch Expressions这是一个为开发者准备的特性,我们可以利用具体代码快速了解一下,下面是传统 statement 形式的 switch 语法:switch (day) { case MONDAY: case FRID...原创 2019-08-28 01:18:33 · 827 阅读 · 0 评论 -
【JavaSe】高级特性篇(十四) Java11的五大新特性
JavaSe·高级特性篇(十四) Java11的五大新特性前言: JDK 11发布北京时间 2018年9 月 26 日,Oracle 官方宣布 Java 11 正式发布。这是 Java 大版本周期变化后的第一个长期支持版本,非常值得关注。从官网即可下载,最新发布的 Java11 将带来 ZGC、Http Client 等重要特性。JDK 11 将是一个 企业不可忽视的版本。从时间节点...原创 2019-08-28 00:47:34 · 806 阅读 · 0 评论 -
【JavaSe】高级特性篇(十三) Java10新特性局部变量类型推断
JavaSe·高级特性篇(十二) Java10新特性局部变量类型推断前言:JDK10发布2018年3月21日,Oracle官方宣布Java10正式发布。需要注意的是 Java 9 和 Java 10 都不是 LTS (Long-Term-Support) 版本。和过去的 Java 大版本升级不同,这两个只有半年左右的开发和维护期。而未来的 Java 11,也就是 18.9 LTS,才是...原创 2019-08-28 00:29:35 · 449 阅读 · 0 评论 -
【JavaSe】高级特性篇(十二) Java9主要的9大新特性
JavaSe·高级特性篇(十二) Java9新特性前言: JDK9的发布经过4次跳票,历经曲折的Java 9 终于终于在2017年9月21日发布。从Java 9 这个版本开始,Java 的计划发布周期是 6 个月,下一个 Java 的主版本将于 2018 年 3 月发布,命名为 Java 18.3,紧接着再过六个月将发布 Java18.9。这意味着Java的更新从传统的以特性驱动的发...原创 2019-08-28 00:17:16 · 471 阅读 · 0 评论 -
【JavaSe】高级特性篇(十一) Java8新特性Optional类
JavaSe·高级特性篇(十一) Java8新特性Optional类1. Optional类引入到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成...原创 2019-08-27 23:17:29 · 641 阅读 · 0 评论 -
【JavaSe】高级特性篇(十) Java8新特性Stream流
JavaSe·高级特性篇(十) Java8新特性Stream流1. 引言1.1 传统集合的多步遍历代码几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历public static void main(String[] args) { List<...原创 2019-08-27 23:02:15 · 896 阅读 · 0 评论 -
【JavaSe】高级特性篇(九) Java8新特性方法引用
JavaSe·高级特性篇(九) Java8新特性方法引用1. 方法引用引入1.1 冗余的 Lamdba 场景在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑?来看一个简单的函数式接口以应用Lambda表达式:@Functiona...原创 2019-08-27 22:26:24 · 518 阅读 · 0 评论 -
【JavaSe】高级特性篇(八) Java8新特性函数式接口
JavaSe·高级特性篇(八) Java8新特性函数式接口1. 函数式接口1.1 概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。“语法糖”是指使用更加...原创 2019-08-27 19:45:10 · 588 阅读 · 0 评论 -
【JavaSe】高级特性篇(七) Java8新特性Lambda表达式
JavaSe·高级特性篇(七) Java8新特性Lambda表达式1. 函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成...原创 2019-08-27 19:02:25 · 543 阅读 · 0 评论 -
【JavaSe】高级特性篇(六) Java高级特性动态代理
JavaSe·高级特性篇(六) Java高级特性动态代理1. 动态代理概述动态代理是指客户通过代理类来调用其它对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象,在不改变目标对象方法的情况下对方法进行增强2. Java动态代理相关APIProxy :专门完成代理的操作类,是所有动态代理类的父类。通过此类为一个或多个接口动态地生成实现类。提供用于创建动态代理类和动态代理对象...原创 2019-08-27 18:17:17 · 503 阅读 · 0 评论 -
【JavaSe】高级特性篇(五) Java高级特性类加载和类加载器
JavaSe·高级特性篇(五) Java高级新特性类加载和类加载器1. 了解类加载过程当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过如下三个步骤来对该类进行初始化加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口(即引用地址)。所有需要...原创 2019-08-27 16:15:16 · 483 阅读 · 0 评论 -
【JavaSe】高级特性篇(四) Java高级特性反射机制
JavaSe·高级特性篇(四) Java高级新特性反射机制1. Java Reflection 概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整...原创 2019-08-27 15:43:51 · 553 阅读 · 0 评论 -
【JavaSe】高级特性篇(三) Java高级特性注解
JavaSe·高级特性篇(三) Java高级新特性注解1. 注解(Annotation)概述1.1 定义定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。1.2 与注释的区别注解:说明程序的。给计算机看...原创 2019-08-27 14:07:50 · 540 阅读 · 0 评论 -
【JavaSe】容器篇(一) Collection集合
JavaSe·容器篇(一) Collection集合1. 集合概述集合是java中提供的一种容器,可以用来存储多个数据集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。数组可以存放基本类型也可以存放引用类型...原创 2019-08-25 11:47:31 · 588 阅读 · 0 评论 -
【JavaSe】常用API篇(九) 包装类
JavaSe·常用API篇(八) 包装类1.概述Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:基本类型对应的包装类(位于java.lang包中)byteByteshortShortintInteg...原创 2019-08-25 01:33:50 · 569 阅读 · 0 评论 -
【JavaSe】常用API篇(八) StringBuffer和StringBuilder类
JavaSe·常用API篇(七) StringBuilder类1 字符串拼接问题由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。public static void main(String[] args) { String s = "Hello"; s += "World"; System.out.println(s);}在A...原创 2019-08-25 00:58:14 · 839 阅读 · 0 评论 -
【JavaSe】面向对象篇(二) 类与对象
JavaSe·面向对象篇(二) 类与对象1. 类与对象概念环顾周围,你会发现很多对象,比如桌子,椅子,同学,老师等。桌椅属于办公用品,师生都是人类。那么什么是类呢?什么是对象呢?1.1 什么是类类: 是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。现实中,描述一类事物:属性:就是该事物的状态信息。行为:就是该事物能够做什么。...原创 2019-08-22 15:58:51 · 968 阅读 · 0 评论 -
【JavaSe】基础篇(十四) Java中的数组
Java基础笔记——数组1. 数组的定义与访问1.1 数组概念数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。容器:是将多个数据存储到一起,每个数据称为该容器的元素。1.2 定义数组方式一格式:数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];数组定义格式详解:数组存储的数据类型: 创建的数组容器可以存储什么数据...原创 2019-08-18 02:26:41 · 854 阅读 · 0 评论