
Java
文章平均质量分 62
真香号
顾真香,前美股上市社交电商商城研发成员、华南某电商独角兽线上商城研发组长,擅长Java技术栈、微服务、MQ,千万用户、高并发电商业务场景解决方案。
展开
-
JVM 初探 (三) :方法区、栈区
JVM中 方法区、栈区到底是什么红灯区原创 2022-04-01 17:38:12 · 699 阅读 · 0 评论 -
JVM初探 (二):Native、PC寄存器、三种JVM
一、NativeNative 一般是指本地的,在Java 源码中如果看到某个方法被Native修饰,那就是代表只能调用底层C 语言处理逻辑。编写一个多线程启动类public static void main(String[] args) { new Thread(() -> {},"Thread1").start();}点进去start方法public synchronized void start() { if (threadStatus != 0)原创 2022-03-26 21:18:26 · 5910 阅读 · 0 评论 -
JVM初探(一):双亲委派机制
了解JVM的构成是Java开发者必备的知识原创 2022-03-26 20:42:23 · 5450 阅读 · 1 评论 -
浅谈Java中的equals和==
本文转载作者:Matrix海子出处:点击此处访问原文地址在初学Java时,可能会经常碰到下面的代码:1 String str1 = new String("hello");2 String str2 = new String("hello");3 4 System.out.println(str1==str2);5 System.out.println(str1...转载 2020-03-19 15:17:18 · 183 阅读 · 0 评论 -
正则表达式——(3)练习 去除重复字符、排序、校验邮箱
1、治口吃将字符串中重复的字符变成不重复,去掉多余的字符private static void test_1() { String str="我我...我我...我我我要...要要要要...要要要要..学学学学学...学学编编...编编编编..编..程程...程程...程程程"; //1、将字符串中的"." 去掉。 使用正则\\. str=...原创 2020-01-24 00:25:37 · 1084 阅读 · 0 评论 -
正则表达式——(2) 匹配、切割、替换、获取
目录1、匹配功能2、切割功能3、替换4、获取1、匹配功能需求:验证手机号码是否合法其实用的就是String类中matches方法 /** * 演示匹配 * 匹配手机号是否正确 */ public static void functionDemo_1() { String tel="1528764889...原创 2020-01-23 17:44:34 · 891 阅读 · 0 评论 -
正则表达式——(1) 概述、常见规则
目录一、概念二、常见的正则规则1、一次或一次也没有2、X 至少出现n此,但是不超过m次一、概念 总结为:正确的规则匹配正则表达式用来操作字符串数据二、应用需求 校验QQ号:定义一个功能对QQ号进行校验,长度5~15,只能是数字,0不能开头。纯Java代码编写:public static void chekeQQ(String qq) {...原创 2020-01-23 15:45:30 · 266 阅读 · 0 评论 -
反射机制——(3)获得Class字节码对象中的字段&Class中的方法
目录一、对象字段1、获取所有的字段2、根据名称获取单个字段:二、获取方法1、获取指定Class中的公共函数2、获取单个的空参方法3、获取带有指定参数的方法一、对象字段在1.6API中有java.lang.Class类。类中有方法1、获取所有的字段Field[] getFields() 返回一个包含某些 Field 对象的...原创 2020-01-22 23:52:53 · 582 阅读 · 0 评论 -
反射机制——(2) 获取Class中的构造函数
一、创建对象追根溯源//早期:new时候,先根据被new的类的名称找寻该类的字节码文件,并加载进内存,//并创建该字节码文件对象,并接着创建该字节文件的对应的Person对象.//com.study.reflection.Person person=new com.study.reflection.Person();现在://现在:String name = "cn...原创 2020-01-22 17:43:23 · 458 阅读 · 0 评论 -
反射机制——(1)概念、应用场景、细节&Class对象
目录目录一、什么是Java反射:二、应用场景三、Class字节码对象四、获取Class对象的三种方式一、什么是Java反射: 反射是Java的特征之一,是一种间接操作目标对象的机制,核心是JVM在运行的时候才动态加载类,并且对于任意一个类,都能够知道这个类的所有属性和方法,调用方法/访问属性,不需要提前在编译期知道运行的对象是谁,他允许运行中的Jav...原创 2020-01-22 16:57:20 · 266 阅读 · 0 评论 -
IO流——(18)管道流PipedInputStream&PipedOutputStream
PipedInputStream:方法:示意图:PipedOutputStream:多线程通过管道流将 管道输入流与管道输出流对接/** * @author James * @create 2020-01-09 22:57 */public class PipedStream { public static void...原创 2020-01-10 00:07:31 · 130 阅读 · 0 评论 -
IO流——(17) Serializable
Serializable:用于给被序列化的类加入ID号。用于判断类和对象是否是同一个版本。在序列化与反序列化过程中,只要当尸体有任何变动,包括字段权限、字段数量发生改变,Java都会改变本地序列化类的ID版本。这种改变算法是自动进行的。在对象序列化完成以后:权限改变 public String name; private int age;再次...原创 2020-01-09 18:13:00 · 147 阅读 · 0 评论 -
IO流——(16)操作对象——ObjectInputStream&ObjectOutputStream
ObjectOutputStream:一、需求:将一个对象持久化到硬盘中业务代码://序列化 public static void writeObj() throws IOException, IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOut...原创 2020-01-09 17:39:13 · 179 阅读 · 0 评论 -
IO流——(15)File类——文件的切割与合并
生活中我们经常遇到这样一类问题,就是对于文件上传有大小的限制,尤其是对某个论坛上传附件时,由于论坛的服务器容量比较小,所以在用户上传文件时,进行限制。 比如论坛限制上传大小为2M,我需要上传5M的文件,那么就可以进行将5M文件切割为3个2M大小的碎片文件,上传以后进行合并。接下来就演示文件的切割与合并。一、切割文件:1、首先实现需要明确需要切割文件的位置。2...原创 2020-01-09 15:42:46 · 568 阅读 · 0 评论 -
IO流——(14) SequenceInputStream 序列流
序列流:一、API声明:compact1, compact2, compact3java.ioClass SequenceInputStreamjava.lang.Object java.io.InputStream java.io.SequenceInputStream All Implemented Interfaces:...原创 2020-01-08 21:48:34 · 180 阅读 · 0 评论 -
IO流——(13) 打印流。
IO包中的其他类PrintStream:打印流public class PrintStreamextends FilterOutputStreamimplements Appendable, CloseablePrintStream为另一个输出流添加了功能,即能够方便地打印各种数据值的表示。 还提供了另外两个功能。 与其他输出流不同, Prin...原创 2020-01-08 20:46:07 · 113 阅读 · 0 评论 -
IO流——(12)练习——根据指定扩展名获取指定目录下的文件路径
一、需求:获取指定目录下,指定扩展名的文件(包含子目录中的) 这些文件的绝对路径写入到一个文本文件中。简单说,就是建立一个指定扩展名的文件的列表。二、思路1、需要进行深度遍历2、在深度遍历的过程中按条件进行过滤。将符合过滤条件的目录名存入容器中3、遍历容器,将容器中的绝对路径写入文本文件中三、技术1、需要使用io File创建文件对象,指定文件路径,为了提高效...原创 2020-01-08 17:04:38 · 218 阅读 · 0 评论 -
Properties集合应用——程序试用5次,超过使用次数给予提示
一、需求:获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示。并不要在运行程序。常见于应用程序区别游客和VIP用户。二、思路:1、应该有计数器: 每次程序启动都需要计数一次,并且是在原有的次数上进行计数。2、计数器就是一个变量。 突然冒出一想法,程序启动时候进行计数,计数器必须存在于内存并进行运算。可是程序一结束,计数器消失了。那么再次启动该程序,计...原创 2020-01-08 13:37:38 · 289 阅读 · 0 评论 -
Map集合——(4) Properties 元素存取修改、List、读取文件Properties方法
目录一、含义1、Propertis:是Map集合中Hastable的一个子类。2、API继承体系3、API介绍:4、线程安全:二、特点:三、常见功能代码演示1、Properties集合 存、取、修改元素2、Properties与Io流相结合3、将Properties集合持久化存储到硬盘中4、 读取文件中的键值对信息5、自定义load( )读取 实现...原创 2020-01-08 11:25:12 · 662 阅读 · 0 评论 -
IO流——(11) File类——深度删除文件目录
一、首先准备文件夹目录里面拥有目录:二、代码演示/** * @author James * @create 2020-01-07 0:30 * * 硬盘中的文件与目录(目录中包含目录) * windows中删除目录是从最里层开始删 */public class RemoveDirTest { public static void m...原创 2020-01-07 00:36:39 · 121 阅读 · 0 评论 -
Java 递归算法
一、概述: Java递归:简单说就是函数自身直接或间接调用函数的本身。二、应用场景: 若:一个功能在被重复使用,并每次使用时,参与运算的结果和上一次调用有关,这时就可以使用递归来解决这个问题。 使用要点: 1,递归一定明确条件。否则容易栈溢出。 2,注意一下递归的次数。三、示例: 最简单的递归演示public class recursi...原创 2020-01-07 00:29:25 · 8708 阅读 · 4 评论 -
IO流——(10)File类——常见功能、查询显示所有目录、过滤显示
一、API概述文件和目录路径名的抽象表示。 用户界面和操作系统使用依赖于系统的路径名字符串命名文件和目录。 这个类提供了一个抽象的,独立于系统的层次化路径名的视图。 抽象路径名有两个组件: 可选系统有关的前缀字符串,如磁盘驱动器符, "/"为UNIX根目录,或"\\\\"的Microsoft Windows UNC路径,并 零个或多个字符串名称的序列。 抽象路径名中的第一个名...原创 2020-01-06 17:21:43 · 304 阅读 · 0 评论 -
IO流——(9) 流的继承体系概览
一、流的基本应用小节流是用来处理数据的。 处理数据时,一定要先明确数据源,与数据目的地(数据汇)。 数据源可以是文件,可以是键盘。 数据目的地可以是文件、显示器或者其他设备。 而流只是在帮助数据进行传输,并对传输的数据进行处理,比如过滤处理.转换处理等。二、字节流继承体系简图三、字符流继承体系简图...原创 2020-01-05 17:31:06 · 477 阅读 · 0 评论 -
IO流——(8) 流的操作规律
在Java中流的对象太多,开发时不知道用哪个对象,所以要清楚流的操作规律。一、想清楚开发时用到哪些对象,只要通过四个明确即可。1、明确源和目的(汇)数据源:InputStream、Reader目的:OutputStream、Writer2、明确数据是否是纯文本数据。源:是纯文本:Reader 否:InputStream目的:是纯文本:Writ...原创 2020-01-05 17:21:02 · 107 阅读 · 0 评论 -
IO流——(7) 转换流
一、API:InputStreamReader: 解码OutputStreamWriter: 编码将控制台输入的字符转换成大写,遇到over就结束程序。public class TransStreamDemo { public static void main(String[] args) throws IOException { ...原创 2020-01-04 22:04:59 · 136 阅读 · 0 评论 -
IO流——(6) 字节流——操作文件
一、字节流的两个父类:InputStream :OutputStream:二、首先看:OutputStream:1、API:2、继承体系:媒体数据也是以文件形式存在。3、方法:4、代码演示:private static void demo_writer() throws IOException { //1、创建字节输出流...原创 2020-01-03 15:41:41 · 296 阅读 · 0 评论 -
IO流——(5) 字符流——缓冲区——自定义实现缓冲区功能
一、需求:自定义一个缓冲区的功能,实现对文本文件的读取、缓存功能。(模拟BufferedReader)二、分析:缓冲区的功能缓冲区的功能,其实就是一个封装了数组的内存区域,提高了io读取的效率。并对外提供了更多的方法对数组进行访问,其实这些方法最终操作的都是数组的角标。缓冲区的原理其实就是从源中读取一批数据装入缓冲区中。在缓冲区中不断的取出一个个数据,在此次取完后,...原创 2020-01-02 17:48:06 · 716 阅读 · 1 评论 -
IO流——(4) 字符流——缓冲区
一、缓冲区概念: 缓冲区可以简单地理解为一段内存区域。可以简单地把缓冲区理解为一段特殊的内存。某些情况下,如果一个程序频繁地操作一个资源(如文件或数据库),则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域之中,以后直接从此区域中读取数据即可,因为读取内存速度会比较快,这样可以提升程序的性能。 举个栗子:去超时购物时,会看到有人提着篮子,和推...原创 2020-01-02 10:45:45 · 644 阅读 · 1 评论 -
IO流——(3) 复制文件
一、需求:实现一文件复制到另一目录 二、思路:1、需要读取的数据源2、将读取到的数据写入到目的地3、操作文本数据,就是使用字符流三、代码演示:(一)、效率低//1、读取一个已有的文件。使用字符读取流 FileReader fr = new FileReader("demo.txt"); //2、创建一个目的地,用于存储读到的数据 ...原创 2020-01-01 13:35:24 · 116 阅读 · 0 评论 -
IO流——(2) 读取文件
一、首先找到Reader类下的子类FileReader():二、选取构造方法三、有两种方法:(一)、read( )(二)、read(char[ ]ch,int offset,int length)(一)、先看第一种:1、编写代码/** * @author James * @create 2019-12-31 16:15 * *...原创 2019-12-31 17:34:06 · 144 阅读 · 0 评论 -
IO流——(1) 输出、输出、读、写、设备
一、IO(Input Output)流 1、输入输出流是相对于设备而言的。将外设中的数据读入内存中:输入将内存中的数据写入外设中:输出 2、字节流的由来: 其实就是字节流读取文字字节数据以后,不直接操作而是先查编码表,获取对应的文字,再对这个文字进行简单的操作。简单说:字节流+编码表3、示意图:二、IO流常用的...原创 2019-12-31 14:29:00 · 372 阅读 · 1 评论 -
Calendar日历类
一、API说明: Calendar对象可以产生实现特定语言和日历风格的日期时间格式化所需的所有日历字段值(例如日语 - 公历,日语 - 繁体)。 Calendar定义某些日历字段返回的值的范围及其含义。 例如,日历系统第一个月的值为MONTH == JANUARY为所有日历。 其他值由具体的子类定义,如ERA 。 有关详细信息,请参阅各个实体文档和子类文档。二、字段摘要stat...原创 2019-12-30 21:15:46 · 808 阅读 · 0 评论 -
Math数学类。
一、说明 在业务中,经常遇到一些有关数学方面的计算,特别是做测绘业务时,显得出现的频率及其多,Java JDK提供了一个Math类,提供了一系列方法供我们使用。Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。与StrictMath类的一些数字方法不同,Math类的StrictMath所有Math都没有定义为返回比特位相同的结果。 这种放松允许在不需要严格再...原创 2019-12-30 20:07:37 · 276 阅读 · 0 评论 -
日期Date—字符串转成日期对象
一、分析从字符串转成日期对象,可分析出,传入参数为String , 返回值类型为Date日期对象。从DateFormat类API方法列表中就知道了方法: Date parse(Stringsource) 从给定字符串的开始解析文本以生成日期。 二、演示代码1、日期格式为:2019年12月30日在获取DateFormat转换...原创 2019-12-30 17:08:37 · 5608 阅读 · 1 评论 -
日期Date—日期转成字符串
一、API 说明类 Date 表示特定的瞬间,精确到毫秒。在类 Date 所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:年份 y 由整数 y-1900 表示。 月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。 日期(一月中的某天)按通常方式由整数 1 至 31 表示。 小时由从 0 至 23 的整数表...原创 2019-12-30 16:16:13 · 6886 阅读 · 0 评论 -
Runtime类
Runtime:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。 通过查看API 发现Runtime类没有构造方法,那么就可以推断出,该类不能被创建对象,实例化。因为它私有化了构造方法。这时候一般,无构造函数的类的所有方法应该全为...原创 2019-12-30 13:26:31 · 309 阅读 · 0 评论 -
System类
一、说明:API 1.6中:System 类包含一些有用的类字段和方法。它不能被实例化。 1、说明该类中的构造方法不对外提供。 2、从不能被实例化可以看出,该类中所有的方法都是静态的。二、字段摘要staticPrintStream err “标准”错误输出流。 staticInputStream in ...原创 2019-12-30 11:51:47 · 161 阅读 · 1 评论 -
Map集合——(2) HasMap 和 TreeMap
|--Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。 |--Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。 |--HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。 HashMap:和hashSet一样存入的元素不能重复,但是在实现...原创 2018-09-12 22:40:51 · 234 阅读 · 0 评论 -
Map集合——(1) 常用方法与MapSet
package cn.itcast.p6.map.demo;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class MapDemo { public static v...原创 2018-09-12 22:01:01 · 5025 阅读 · 0 评论 -
将非同步集合转换为同步集合
工具类方法 static <T> Collection<T> synchronizedCollection(Collection<T> c) 返回指定 collection 支持的同步(线程安全的)collection。 static <T> List<T> ...原创 2018-09-17 10:48:37 · 572 阅读 · 0 评论