
java基础
深知她是一场梦
本人很懒,除了忙,什么都不干!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
try(){}自动释放资源
原先背景与做法我们在使用资源的时候,必须关闭资源,比如使用jdbc连接或者inputStream的时候,必须在finally中将资源关闭。比如获取Mybatis框架的SqlSession的时候package com.dao;import com.lingaolu.dao.DeptDao;import com.lingaolu.pojo.Dept;import com.lingaolu.utils.MybatisUtils;import org.apache.i..原创 2020-10-13 15:26:24 · 5813 阅读 · 3 评论 -
Stream流的高级用法-综合分组求和、组合排序、求极值
还不清楚Steam流的用法的,可以先看这篇Stream流(Stream,Lambda)我们以下的例子都是基于这个学生类Student来操作,下面是学生类Student的代码学生属性有:编号,名字,年龄,数学成绩,语文成绩,重写toString方法,重写equals和hashCode方法package com.TestStream;/** * @author 林高禄 * @create 2020-06-04-16:47 */public class Student { .原创 2020-06-09 12:17:18 · 18716 阅读 · 0 评论 -
Java枚举
这里不想自己写了,看这篇就可以了Java枚举的常见用法,感谢此篇文章的博主,如有侵权请联系我删除,谢谢。转载 2020-06-08 08:58:10 · 8547 阅读 · 0 评论 -
模块化(exports,provides .. with ..,requires,uses)
模块化是基于Java1.9版本的新特性,什么是模块化呢?我们先建2个模块从上面那张图的最上面的Module SDK可以看出,我的版本是14,比Java1.9版本高,所以也是可以使用模块化的输入模块的名字,然后直接点Finish,模块就创建成功了下面是我建立的2个模块Boy类代码package com.linGaoLu_01;/** * @author 林高禄 * @create 2020-06-07-20:01 */public ...原创 2020-06-07 21:34:55 · 9347 阅读 · 0 评论 -
Java反射,越过泛型检查,动态配置
反射概述Java反射机制:是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增强程序的灵活性,程序不用再编译期就完成确定,在运行期仍然可以扩展我们以下的例子都是基于这个学生类Student来操作,下面是学生类Student的代码学生类有: 静态属性: 私有-介绍-String-introduce 成员属性: 公共-姓名-String-name-; 默认-编号-int-no; 私有-年龄-int.原创 2020-06-05 18:01:11 · 8860 阅读 · 0 评论 -
Stream流(Stream,Lambda)
Stream流是Java8提供的一个新特性,这个有什么新大陆发现呢,我们先看一个例子以下内容要先有Lambda表达式基础,不清楚Lambda表达式的可以看这个我们以下的例子都是基于这个学生类Student来操作,下面是学生类Student的代码学生属性有:名字,年龄,数学成绩,语文成绩package com.TestStream;/** * @author 林高禄 * @create 2020-06-04-16:47 */public class Student { .原创 2020-06-04 17:54:34 · 10071 阅读 · 0 评论 -
函数式接口(Lambda表达式,@FunctionalInterface)
概述:函数式接口:有且仅有一个抽象方法的接口Java中函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用Lambda使用的接口,只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导 不清楚Lambda表达式的可以看这个我们先看一个例子,demoInterface1:接口1Demo:示例demopackage com.testFunctionalInterface;/** * @author 林高禄 * @creat..原创 2020-06-03 16:56:02 · 10073 阅读 · 0 评论 -
方法引用(::,Lambda表达式的孪生兄弟)
什么是方法引用呢,我们先看一个例子Interface1:接口1,里面有一个抽象方法mathodDemo:测试类,体验方法引用Interface1:接口1的代码package com.testMethodReference;/** * @author 林高禄 * @create 2020-06-03-9:33 */public interface Interface { int method(int a,int b);}Demo:测试类代码p.原创 2020-06-03 11:02:18 · 9584 阅读 · 0 评论 -
Java接口(Interface,组成更新)
我们知道,在Java的语法中,接口Interface里只能有抽象方法,实现接口的类必须重写这些抽象方法,但是这些都是在JDK8之前,在Java8之后,接口的组成有了更新,Java9之后,又有新的更新。下面我们就用男女恋爱的例子一步步带入来进行讲解这些更新我们先展示一段代码示例,男孩和女孩谈恋爱,按照Java8之前的做法TalkLove:谈恋爱接口,目前里面只有吃饭eat()和看电影watchMovie()2个抽象方法。 StudentBoy:学生男类,实现了TalkLove谈恋爱类..原创 2020-06-02 17:53:26 · 9086 阅读 · 2 评论 -
Lambda表达式(详细介绍)
Lambda表达式,实际上就是函数式编程我们先用一个例子体验一下lambda表达式Programmer:程序员接口,里面有一个编码的抽象方法 Me:我的类,实现了程序员接口 Demo:测试Demo,里面有useProgrammer(Programmer p)方法,方法内部调用接口的writeCode()方法,主方法分别用实现类、匿名内部类、lambda表达式3中方式调用useProgrammer方法。Programmer接口的代码package com.testLambda.原创 2020-06-02 15:19:37 · 9653 阅读 · 0 评论 -
TCP多线程实现文件上传
TCP多线程实现文件上传例子原创 2020-06-01 16:47:02 · 9056 阅读 · 0 评论 -
TCP协议(Socket,ServerSocket)
TCP协议传输控制协议(Transmission Control Protocol) TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端向服务器发出连接请求,每次连接的创建都需要经过“三次握手”三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠第1次握手,客户端向服务器发出连接请求,等待服务器确认 第2次握手.原创 2020-06-01 16:44:12 · 9778 阅读 · 0 评论 -
UDP聊天室(代码)
我们已经了解了UDP的协议,那么现在我们就简单的做一个UDP的聊天室我们定义一个UDPChatDemo类,里面有主方法,还定义一个发送端的线程类SendThread,为了记录名字,所以用继承方式,一个接收端的线程类Receive,主线程启动1个接收端,2个发送端。package com.wangLuo;import java.io.*;import java.net.*;import java.util.Date;/** * @author 林高禄 * @create 2..原创 2020-05-22 17:38:02 · 9439 阅读 · 1 评论 -
UDP协议(UDP,DatagramSocket,DatagramPacket)
UDP协议用户数据报协议(User datagram Protocol) UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发送数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。 由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输UDP通信原理UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个S..原创 2020-05-22 15:59:19 · 9263 阅读 · 0 评论 -
网络编程(InetAddress,IP,端口,协议,UDP,TCP)
网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换网络编程三要素IP地址 端口 协议IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是是设备的标识 IPv4:32bit地址,4个字节,用二进制表示,如11000000 10101000 00000001 01000010,为了方便写成十进制,如192.168.1.66 IPv6:.原创 2020-05-19 17:19:27 · 8776 阅读 · 0 评论 -
线程安全(数据同步synchronized,Lock锁)
我们先看一个例子,假设去银行取钱,原始钱为20,每次只取1元,有3个人分别同时去取package com.Thread;/** * @author 林高禄 * @create 2020-05-14-15:43 */public class Test1 implements Runnable { private int a = 20; private boolean b = true; @Override public void run() { .原创 2020-05-14 17:08:49 · 8730 阅读 · 0 评论 -
线程(Thread)(代码)
在了解线程之前,我们先看看线程与进程的区别进程:是正在运行的程序是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进行如果只有一条执行路径,则称为单线程程序 多线程:一个进程如果有多条执行路径,则称为多线程程序比如:一个微信客户端则是一个进程如果你和一个妹纸视频,则是单线程如果你同时传视频文件给多个妹子,则就是多线程多线程的实现方式有2种:继承Thread类 实.原创 2020-05-14 11:59:01 · 10524 阅读 · 0 评论 -
Properties介绍与使用
概述:是一个Map体系集合类 Properties可以保存到流中或者从流中加载package com.testIO;import java.util.*;/** * @author 林高禄 * @create 2020-05-13-11:20 */public class PropertiesDemo { public static void main(String[] args) { Properties p = new Properties();.原创 2020-05-13 11:51:55 · 8941 阅读 · 0 评论 -
对象序列化流与对象反序列化流(ObjectOutputStream,ObjectInputStream)
对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型、对象的数据和对象中存储的属性等信息字节序列写到文件后,相当于文件中持久保存了一个对昂的信息反之。该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化要实现序列化与反序列化,就要使用对象序列化流和对象反序列化流:对象序列化流:ObjectOutputStream 对象反序列化流:ObjectInputStream对象序列化流:ObjectOu.原创 2020-05-12 22:42:08 · 9903 阅读 · 0 评论 -
字符打印流(PrintWriter)
构造方法:PrintWriter(String fileName):使用指定的文件名创建一个新的PrintWriter,而不需要自动执行刷新 PrintWriter(Writer out,boolean autoFlush):创建一个新的PrintWriter,out是字符输出流,autoFlush是一个布尔值,如果为真,则println,printf,或format方法刷新输出缓冲区package com.testIO;import java.io.*;/** * @author.原创 2020-05-12 21:01:34 · 10193 阅读 · 0 评论 -
字节打印流(PrintStream)
PrintStream(String fileName):使用指定的文件名创建新的打印流特点只负责输出数据,不负责读取数据 有自己的特有方法package com.testIO;import java.io.*;/** * @author 林高禄 * @create 2020-05-12-16:16 */public class PrintStreamDemo { public static void main(String[] args) throws IO.原创 2020-05-12 20:37:57 · 9078 阅读 · 0 评论 -
标准输入输出流(InputStream ,PrintStream )
System类中有两个静态的成员变量: public static final InputStreamin:标准输入流。通常该流对应于键盘输入或者由主机环境或用户指定的另一个输入源 public static final PrintStream out:标准输出流。通常该流对应于显示输出或者由主机环境或用户指定的另一个输出目标 我们先看标准输入流package com.testIO;import java.io.IOException;import java.i...原创 2020-05-12 20:23:04 · 10867 阅读 · 0 评论 -
复制文件的异常处理
调用流对象的时候,抛出了异常,这时就需要需要处理异常,下面是处理异常的方式直接抛出去package com.testIO;import java.io.*;/** * @author 林高禄 * @create 2020-05-12-14:42 */public class IOExceptionDemo { public static void main(String[] args) throws IOException{ mathod(); ..原创 2020-05-12 14:58:10 · 9011 阅读 · 0 评论 -
IO流(总篇章)
概述:IO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输成为流,流的本质是数据传输 IO流就是用来处理设备间数据传输问题的 常见的应用:文件复制;文件上传;文件下载分类:按照数据的流向:输入流:读数据 输出流:写数据按照数据类型来分:字节流:(字节输入流、字节输出流),字节缓冲流 字符流:(字符输入流,字符输出流),字符缓冲流...原创 2020-05-12 10:59:32 · 9236 阅读 · 0 评论 -
字符缓冲流(BufferedWriter,BufferedReader)
字符缓冲流BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数字和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。默认值足够大,可用于大多数用途 BufferedReader:从字符输出流读取文本,缓冲字符,以提供字符,数组,和行的高效读取,可以指定缓冲区大小,或者可以使用默认的大小。默认值足够大,可用于大多数用途构造方法字符缓冲输出流:BufferedWriter(Writer out) 字符缓冲输入流:BufferedReader(Reade.原创 2020-05-12 10:48:59 · 9273 阅读 · 2 评论 -
字符流(InputStreamReader,OutputStreanWriter,FileReader,FileWriter)
为什么会有字符流?先看下面这个例子,b.txt文件里只有3个汉字:林高禄package com.testIO;import java.io.FileInputStream;import java.io.IOException;/** * @author 林高禄 * @create 2020-05-09-17:26 */public class StreamDemo { public static void main(String[] args) throws IOEx.原创 2020-05-09 18:18:16 · 8781 阅读 · 0 评论 -
基本字节流(FileOutputStream,FileInputStream)
FileOutputStream创建字节输出流对象(调用系统功能创建文件,创建字节输出流对象,让字节输出流对象指向文件) 调用字节输出流对象的写数据方法 释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)package com.testIO;import java.io.*;/** * @author 林高禄 * @create 2020-05-09-11:10 */public class FileOutputStreamDemo { public st.原创 2020-05-09 15:38:22 · 8798 阅读 · 0 评论 -
自定义异常(介绍与代码)
Java的异常包含运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生,运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,.原创 2020-05-09 12:14:20 · 9251 阅读 · 0 评论 -
详解【递归】的正确打开方式
老和尚给小和尚讲故事,故事是:从前有座山,山里有个庙,庙里有个老和尚,老和尚给小和尚讲故事,故事是......原创 2020-05-08 14:59:16 · 9402 阅读 · 0 评论 -
File,文件(介绍与代码)
File是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的构造方法File():通过将 给定的路径名字符串转换为抽象路径名来创建新的file实例 File(String parent,Strin...原创 2020-05-08 09:13:42 · 10900 阅读 · 0 评论 -
Java集合容器(介绍)
Java集合容器的介绍原创 2020-05-07 15:59:41 · 8876 阅读 · 0 评论 -
运算符(详解与代码)
作为一门计算机语言,肯定要涉及数学运算,运算离不开运算符,Java也提供了一套丰富的运算符来操作变量。算术运算符 一元运算符 +,-,*,/,% 二元运算符 ++,-- 赋值运算符 = 扩展运算符 +=,-=,*=,/= 关系运算符 >,<,>=,<=,==,!=,instanceof 逻辑运算符 &a...原创 2019-04-25 15:24:42 · 14133 阅读 · 7 评论 -
运算符的优先级(详解)
Java语言提供了很多运算符,如果一个表达式很长,包含了很多运算符,那么哪个运算符先执行,哪个运算符后执行,得出的结果是不一样的,这就涉及到了运算符的优先级问题,下表就是各运算符的优先级,不用死记,了解需要用到的时候再来查就行。运算符的优先级 优先级 运算符 类型 结合性 1 () 括号运算符 由左向右 2 !、+(正号)、-(负号) ...原创 2019-04-29 16:51:29 · 14597 阅读 · 0 评论 -
Java8大基本数据类型(详解与代码)
Java定义了8大基本数据类型数值型:byte、short、int、long、float、double字符型:char布尔型:boolean目录1、 图示2、整型3、浮点型4、字符型5、布尔型1、 图示数据类型序号 数据类型 名称 封装类 占用存储空间(字节) 位 取值范围 默认值 备注 ...原创 2019-04-24 17:02:27 · 15245 阅读 · 1 评论 -
变量和常量(详解与代码)
目录1、局部变量2、成员变量3、静态变量4、常量变量的本质上就是代表一个“可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。1、局部变量局部变量需要声明,并且初始化才能使用public class TestVariable{ public void testA(){...原创 2019-04-23 17:35:41 · 8757 阅读 · 0 评论 -
Java(JDK)的安装和环境配置
目录1、JDK下载2、JDK安装3、配置环境变量1、设置Parh环境变量的步骤如下4、测试安装和配置是否成功Java的安装实际上就是JDK(Java开发工具包)的安装。1、JDK下载打开oracle官网,https://www.oracle.com/index.html,找到DownLoads单击。找到Java模块的Java (JDK) for Develo...原创 2019-04-01 11:58:06 · 8774 阅读 · 0 评论 -
JDK和JRE和JVM的作用与区别(介绍)
1、JDKJDK(Java Development Kit Java开发工具包)包含:包含JRE,以及增加编译器和调试器等用于程序开发的文件。2、JREJRE(Java Runtime Environment Java运行时环境)包含:Java虚拟机,库函数,运行Java应用程序所必须的文件。3、JVMJVM(Java Virtual Machine Java虚拟机)就是一个虚...原创 2019-04-01 11:41:23 · 9524 阅读 · 0 评论 -
数据类型转化(详解与代码)
目录1、自动类型转换2、强制类型转换3、转换溢出程序的运行,有时涉及到类型的转化,类型的转化涉及到自动类型转化和强制类型转化。1、自动类型转换自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型,如下图,红色实线表示无数据丢失的自动类型转换,而蓝色虚线表示在转换时可能会有精度的损失。这里的容量并不是指占用字节数的大小,而是指数值的表示范围的,那同样...原创 2019-05-06 10:56:15 · 9110 阅读 · 0 评论 -
Java中浮点数的表示方法
1、https://blog.csdn.net/endlessseaofcrow/article/details/812690792、https://blog.csdn.net/yezhubenyue/article/details/7436624转载 2019-05-06 11:30:07 · 10751 阅读 · 0 评论 -
switch语句(详解与代码)
语法格式:switch (表达式) {case 值1:语句序列1;[break]; []表示可写可不写,一般都写,不写的话会发生case穿透case 值2:语句序列2;[break];default:默认语句;default;}switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是sw...原创 2019-05-20 21:36:23 · 16713 阅读 · 0 评论