JAVA 一篇文章带你搞定 Java中的 String,StringBuilder,StringBuffer 三者的区别 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面String:适用于少量的字符串操作的情况StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
JAVA 新版任你发,我用Java 8 最近,新版本的JDK又双叒叕发布了,目前已经JDK14了,从2017年8月份开始,JDK的更新频率变成了每半年一次,将固定在每年的3月份和9月份发布新版本。按照这个频率,过不了多久,JDK20就要推出了…最早的JDK发布于1996年,相信比很多读者的年龄都要小,其发布频次如下:Java8与Java11为当前提供支持的LTS(长期支持)版本;2018年9月,随着Java11的发布,Java10自当日
JAVA Java 14 发布了,不使用"class"也能定义类了?还顺手要干掉Lombok! 2020年3月17日发布,Java正式发布了JDK14,目前已经可以开放下载。在JDK14中,共有16个新特性,本文主要来介绍其中的一个特性:JEP359:Records官方吐槽最为致命早在2019年2月份,Java语言架构师BrianGoetz,曾经写过一篇文章(http://cr.openjdk.java.net/~briangoetz/amber/datum.html),详尽的说明了并吐槽了
JAVA java.lang.NullPointerException 空指针异常 在Java中,null作为一个特殊值被对象引用,用来表示该对象当前指向的是一块未知内存数据。然而NullPointerException这个异常,则是程序在使用或访问一个对象的引用时,而该对象等于null则被抛出文章目录一、引发空指针异常的情况二、为什么需要null?三、如何避免空指针异常四、空指针异常的常见现象五、现有的NullPointerException安全方法一、引发空指针异常的情况(1
JAVA 求你了,别再说Java对象都是在堆内存上分配空间的了! Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。可以说,关于JVM的相关知识,基本是每个Java开发者必学的知识点,也是面试的时候必考的知识点。在JVM的内存结构中,比较常见的两个区域就是堆内存和栈内存(如无特指,本文提到的栈均指的是虚拟机栈),关于堆和栈的区别,很多开发者也是如数家珍,有很多书籍,或
JAVA 学习 Java 读写 Properties 配置文件一篇文章就够了 文章目录一、基本概念二、代码实例一、基本概念Properties类与Properties配置文件Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。Properties中的主要方法(1)load(InputStreaminStream)这个方法可以从.properties属性
JAVA 搞定 JAVA 中的网络编程一篇文章就够了 文章目录一、学习目录二、扩展目录一、学习目录网络编程入门TCP通信概述TCP通信客户端的实现TCP通信服务端的实现文件上传下载案例文件上传下载案例优化二、扩展目录JavaSocket参数详解setKeepAlive判断Socket的实时连接状态(心跳包)
JAVA Java 正则表达式中捕获组的使用 文章目录一、find()、start()、end()二、捕获组一、find()、start()、end()find()方法用于在文本中查找出现的正则表达式,文本是创建Matcher时,通过Pattern.matcher(text)方法传入的。如果在文本中多次匹配,find()方法返回第一个,之后每次调用find()都会返回下一个。start()和end()返回每次匹配的字串在整个文本中的开始和结束
JAVA Java堆内存是线程共享的!面试官:你确定吗? Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。可以说,关于JVM的相关知识,基本是每个Java开发者必学的知识点,也是面试的时候必考的知识点。在JVM的内存结构中,比较常见的两个区域就是堆内存和栈内存(如无特指,本文提到的栈均指的是虚拟机栈),关于堆和栈的区别,很多开发者也是如数家珍,有很多书籍,或
JAVA 一篇文章带你搞定 Java 网络编程中的文件上传下载案例优化 文章目录一、文件上传优化分析二、优化代码实现一、文件上传优化分析客户端服务端关闭的问题/*问题:客户端和服务器都无法终止,遇到了阻塞原因:这里未读取到-1,也就是未给服务器写一个结束标记解决:上传完文件,给服务器写一个结束标记voidshutdownOutput()禁用此套接字的输出流。对于TCP套接字,任何以前写入的数据都将被发送,并且后跟TCP的正常连接终止序列。*/socket.shutdo
JAVA Java Socket 参数详解 setKeepAlive Javasocket编程中有个keepalive选项,看到这个选项经常会误解为长连接,不设置则为短连接,实则不然。socket连接建立之后,只要双方均未主动关闭连接,那这个连接就是会一直保持的,就是持久的连接keepalive只是为了防止连接的双方发生意外而通知不到对方,导致一方还持有连接,占用资源其实这个选项的意思是TCP连接空闲时是否需要向对方发送探测包,实际上是依赖于底层的TCP模块实现的,
JAVA 一篇文章带你搞定 Java 网络编程中的文件上传下载案例 文章目录一、文件上传分析图解二、客户端实现三、服务端实现一、文件上传分析图解(1)【客户端】输入流,从硬盘读取文件数据到程序中。(2)【客户端】输出流,写出文件数据到服务端。(3)【服务端】输入流,读取文件数据到服务端程序。(4)【服务端】输出流,写出文件数据到服务器硬盘中。二、客户端实现文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据明确:数据源存在c:\\1.jpg目的地
JAVA 一篇文章带你搞定 Java 网络编程中的 TCP 通信服务端的实现 文章目录一、相关概念二、代码实现一、相关概念TCP通信的服务器端:接收客户端的请求,读取客户端发送的数据,给客户端回写数据表示服务器的类:java.net.ServerSocket:此类实现服务器套接字。构造方法:ServerSocket(intport)创建绑定到特定端口的服务器套接字。服务器端必须明确一件事情,必须的知道是哪个客户端请求的服务器所以可以使用accept方法获取到请求的客户端对象
JAVA 一篇文章带你搞定 Java 网络编程中的 TCP 通信客户端的实现 文章目录一、相关概念知识二、代码示例一、相关概念知识TCP通信的客户端,向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据(1)表示客户端的类:java.net.Socket:此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。套接字:包含了IP地址和端口号的网络单位