自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Java 8 特性

在Java 8中专门有一个包放函数式接口,该包下的所有接口都有注解,提供函数式编程方式。下面是最常用的几个接口。

2025-08-09 23:40:35 1077

原创 线程池与反射

在Java中,除了int等基本类型外,Java的其他类型全部都是class(包括interface例如:String、Object、Runnable、Exception、...Java反射机制是Java语言的一个重要特性。在学习Java反射机制前,大家应该先了解两个概念:编译器和运行期。编译期:是指把源码交给编译器编译成计算机可以执行的文件的过程。在Java中也就是把Java代码编成class文件的过程。编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作。

2025-08-09 15:50:11 624

原创 多线程(二)

多个线程在运行的过程中,都需要获取对方线程所持有的锁(资源),导致处于长期无限等待的状态。System.out.println("进入到add方法中");System.out.println("add方法执行结束");System.out.println("进入到desc方法中");System.out.println("desc方法执行结束");t1.start();

2025-08-05 19:04:47 1054

原创 多线程(一)

现代操作系统(WindowsmacOSLinux)都可以执行多任务。多任务就是同时运行多个任务。例如:播放音乐的同时,浏览器可以进行文件下载,同时可以进行QQ消息的收发。CPU执行代码都是一条一条顺序执行的,但是,即使是单核CPU,也可以同时运行多个任务。因为操作系统执行多任务实际上就是让CPU对多个任务轮流交替执行。操作系统轮流让多个任务交替执行,例如,让浏览器执行0.001秒,让QQ执行0.001秒,再让音乐播放器执行0.001秒。在用户使用的体验看来,CPU就是在同时执行多个任务。

2025-08-04 23:48:11 1099

原创 加密与安全

ASCII码就是一种编码,字母A的编码是十六进制的0x41,字母B是0x42,以此类推:字母ASCII编码A0x41B0x42C0x43D0x44因为ASCII编码最多只能有127个字符,要想对更多的文字进行编码,就需要用占用2个字节的Unicode或者3个字节的UTF-8。例如:中文的"中"字使用Unicode编码就是0x4e2dUTF-8编码是0xe4b8ad。汉字Unicode编码UTF-8编码中0x4e2d0xe4b8ad文0x65870xe69687编。

2025-08-01 20:25:50 931

原创 网络编程(一)TCP编程和UDP编程

计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。那什么是互联网呢?互联网是网络的网络(internet),即把很多计算机网络连接起来,形成一个全球统一的互联网。对某个特定的计算机网络来说,它可能使用网络协议ABC,而另一个计算机网络可能使用网络协议XYZ。如果计算机网络各自的通讯协议不统一,就没法把不同的网络连接起来形成互联网。因此,为了把计算机网络接入互联网,就必须使用TCP/IP协议。TCP/IP。

2025-07-31 23:05:52 1057

原创 Excel文件解析

在应用程序的开发过程中,经常需要使用Excel文件来进行数据的导入或导出。所以,在通过Java语言实现此类需求的时候,往往会面临着Excel文件的解析(导入)或生成(导出)。Apache POIJXL等。Apache POI基于DOM方式进行解析,将文件直接加载内存,所以速度较快,适合Excel文件数据量不大的应用场景。JXL只支持Excel 2003以下版本,所以不太常见。

2025-07-31 22:42:37 792

原创 JSON解析

JSON是一种轻量级的数据交换格式。它基于ECMAScript, 欧洲计算机协会制定的JavaScript规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

2025-07-29 23:16:28 899

原创 Java基础-IO流

Properties是Hashtable的子类,专门用于处理属性文件(以为后缀的文件,不过这里是直接在代码里操作),它的键和值都是String类型,常用于存储配置信息。//setProperty(String key, String value)给对象赋值p1.setProperty("姓名","张三");p1.setProperty("年龄","18");//getProperty(String key)获取键对应的值String str=p1.getProperty("姓名");

2025-07-28 21:49:55 864

原创 Java基础-文件操作

(2)public long length() :获取文件长度(即:字节数---真实的大小)。(8) public File[] listFiles() :获取指定目录下的所有文件或者目录的File数组----返回时File。(7)public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组---注意返回类型。代表操作系统的文件(文件、文件夹)。4.单文件对象是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放入File数组中放回,包含隐藏文件。

2025-07-26 22:39:46 523

原创 Java基础day17-LinkedHashMap类,TreeMap类和集合工具类

是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。例如addAll()方法可以给一个Collection类型的集合添加若干元素。因为方法参数是Collection,所以我们可以传入ListSet等各种集合类型。

2025-07-26 18:32:32 972

原创 Map接口-实现类HashMap

(1)Map是一种键值对集合,每一个元素都包含一个 键对象(key) 和一个 值对象(value)。(2)Map集合中,键不允许重复,值可以重复。(比如身份证与姓名)(3)键和值是一一对应的,通过键可以找到与之对应的唯一的值。(4)key和value必须是引用数据类型。二、实现类HashMap。

2025-07-24 22:42:48 1174

原创 Java基础day16-Vector类-Stack类-Collection子接口Set接口

(1)元素是没有重复的,而且是无序的(2)允许有null值(3)是无序的,即不会记录插入的顺序(4)不是线程安全的,如果多个线程尝试同时修改HashSet,则最终结果是不确定的。(1)LinkedHashSet的底层使用LinkedHashMap存储元素。(2)LinkedHashSet是有序的,维护了元素的插入顺序。(3)LinkedHashSet是不支持按访问顺序对元素排序的,只能按插入顺序排序。(1)最大的特点就是一个可排序-的去重集合容器。

2025-07-24 22:08:12 1164

原创 ArrayList类与LinkedList类的区别?

(1)ArrayList底层使用Object[]数组来存储元素。(2)LinkedList底层使用双向链表来存储元素。定义一个f保存头节点first,再定义一个新节点,它的pre=null,元素为e,next=f,然后将头节点first指向新节点newNode。接下来判断原链表是否为空,如果为空,新节点也会成为尾节点。不为空的话,原头节点的前驱指向新节点。最后链表的长度加1,链表被修改的次数加1。

2025-07-24 00:31:54 385

原创 Java基础day15

什么是集合?集合就是“由若干个确定的元素所构成的整体”,在程序中,一般代表保存若干个元素(数据)的某种容器类。在数学中,我们经常遇到集合的概念。例如:有限集合:一个班所有的同学构成的集合;一个网站所有的商品构成的集合;...无限集合:全体自然数集合:1,2,3,……有理数集合;实数集合;...为什么要在计算机中引入集合呢?这是为了便于处理一组类似的数据,例如:计算所有同学的总成绩和平均成绩;列举所有的商品名称和价格;……在Java中,如果一个Java。

2025-07-23 22:28:55 1227

原创 Java基础day14

Exception││ ││ ││ ││ ││ │││ ││ ││ │││││当我们在代码中需要抛出异常时,尽量使用JDK已定义的异常类型。例如,参数检查不合法,应该抛出在一个大型项目中,可以自定义新的异常类型,但是,保持一个合理的异常继承体系是非常重要的。一个常见的做法是自定义一个作为“根异常”,然后,派生出各种业务类型的异常。需要从一个适合的Exception派生,通常建议从其他业务类型的异常就可以从...自定义的super();上述构造方法参考原生实现。

2025-07-22 19:17:49 798

原创 Java基础day13

不同类型的枚举不能互相比较或者赋值,因为类型不符。例如,不能给一个。

2025-07-21 22:37:24 949

原创 Java基础day12

虽然可以直接拼接字符串,但是,在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串。常用的占位符有:%s:显示字符串,%d显示整数,%f显示浮点数。的赋值写法,称为自动装箱(Auto Boxing),反过来,把Integer变为int的赋值写法,称为自动拆箱(Auto Unboxing)。任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指 向而已。,但实际上那只是Java编译器在编译期,会自动把所有相同的字符串当作一个对象放入常量池,

2025-07-20 16:47:46 1097

原创 Java基础day11

(默认访问修饰符):在同一包内可见,不使用任何修饰符。使用位置:类、接口、变量、方法。(2)private(私有访问修饰符): 在同一类的内部可见。使用位置:变量、方法。(3)public(公共访问修饰符): 对所有类可见。使用位置:类、接口、变量、方法(保护访问修饰符): 对同一包内的类、或子类(子类可以不同包)可见。使用位置:变量、方法。修饰符当前类同一包内子类(同一包)子类(不同包)其他包publicYesYesYesYesYesprotectedYesYesYes。

2025-07-20 15:33:36 794

原创 Java基础day10-多态与抽象类与接口

由于多态的存在,每个子类都可以重写父类的方法。/*** 抽象方法:* 1.使用关键字abstract来修饰方法* 2.抽象方法没有方法体* 3.抽象方法一定要放在抽象类中* 4.抽象方法一定要被子类所重写,除非这个类是抽象类* 5.抽象方法不能使用private/final所修饰* 抽象方法存在的意义就是定义规则,被子类重写*/例如:从Person父类派生的Student子类和Teacher子类都可以覆写run()方法。@Override@Override如果父类Person。

2025-07-17 19:37:18 962

原创 Java基础day09-Extends继承

当我们让Student从Person继承时,Student就获得了Person的所有功能,我们只需要为Student编写新增的功能。5.当父类中不存在无参构造方法时,子类必须手动的调用父类的有参构造方法,并且必须在子类构造方法中的第一行。方法重写:发生在子父类中,父类提供的方法不能满足子类的需求,此时,可以在子类中对此方法重写编写。在OOP的术语中,我们把Person称为超类、父类、基类,把Student称为子类、扩展类。因此,我们得出结论:如果父类没有默认的构造方法,子类就必须显式的通过。

2025-07-16 20:17:21 967

原创 Java基础day08-构造方法

声明的构造代码块,构造代码块在创建对象时被调用,每次创建对象都会调用一次,但是优先于构造函数执行。需要注意的是,构造代码块不仅仅是优先于构造函数执行,而是依托于构造函数,也就是说,如果你不实例化对象,构造代码块是不会执行的。没有在构造方法中初始化字段时,引用数据类型的字段默认是null,数值类型的字段用默认值,int类型默认值为0,布尔类型默认值是false。,那么这个实例,所持有的值或许就是不正确的。如果,既要能使用带参数的构造方法,又想保留不带参数的构造方法,那么只能把两个构造方法全部都定义出来。

2025-07-15 19:35:13 835

原创 Java基础day07

"方法"一词来源于日常生活中用语,意思是“指为获得某种东西或达到某种目的而采取的手段与行为方式”。在编程语言中,“方法”有时也被称为“函数”,其含义主要是“实现编程中某个具体功能的办法或方式,是一系列步骤的总结”。

2025-07-15 00:43:21 243

原创 Java基础day06

因为越到后面随机到的数与前面选出的数重复的概率越大。这个时候,就需要用到数组乱序算法。的随机数,因为在这个过程中,产生重复数字的概率是非常大的。,不符合"不重复"的要求,所以需要重新生成随机数。二维数组的每个数组元素的长度并不要求相同,例如,可以这么定义。二维数组就是数组的数组。,实现算法中有一个非常著名的洗牌算法。个不重复的数的话,随机次数远远大于。(1)假设有一组等待乱序的数组。中随机选取一个未乱序的元素。的数组,里面的元素是从。实现过程中,不仅仅是用。,第二次如果再一次随机到。包含3个数组,因此,

2025-07-14 00:41:34 351

原创 Java基础day05

无论是while循环、do...while循环、forbreak语句和continue语句。

2025-07-14 00:05:16 674

原创 Java基础day04

在Java中,可以使用来向屏幕输出一些内容。println是print line的缩写,表示输出并换行。如果输出后不想换行,可以用如果要把数据显示成我们期望的格式,就需要使用格式化输出的功能。格式化输出使用,通过使用占位符printf()

2025-07-11 20:15:22 756

原创 Java基础day01

Java语言的特点:跨平台/可移植性:JVM/JRE/JDK。java程序在cmd中编译:javac -encoding utf-8 类名.java。运行:java 类名。注释:单行://;多行:/* */;文本:/** */。输出println:换行输出,里面可以无内容;print:不换行输出,里面必须有内容。字符串和数字的混合表达式输出:+左右有字符串,则做拼接运算。

2025-07-10 01:16:19 341

原创 Java基础day02

在Java中,变量必须先定义后使用,在定义变量的时候,可以给它一个初始值,当然也可以先声明出来后给初始值。如果没有进行初始赋值,该变量将无法使用。//方式1://声明变量: 数据类型 变量名;//赋值: 变量名 = 值 (一定要赋值后才能使用)int x;x = 1;//方式2://声明并赋值: 数据类型 变量名 = 值int x = 1;从作用的角度来理解:变量用于保存程序在运行过程中,产生的一个临时数据;从内存的角度来理解:变量是代表内存中的一个存储单元;

2025-07-10 01:06:24 792

原创 Java基础Day03

定义一个数组类型的变量,使用数组类型“数据类型 []”的语法,例如,int[]。和单个基本类型变量不同,数组变量初始化必须使用new int[5]或{... ...}表示创建一个可容纳5个int元素的数组内存空间。数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false,字符不可见;数组一旦创建后,大小就不可改变,所以说数组长度固定;访问数组中的某一个元素,需要使用索引。数组索引从0开始。例如,5个元素的数组,索引范围是0~4。

2025-07-09 23:34:28 441

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除