java
文章平均质量分 61
人畜无害的萌新史莱姆
这个作者很懒,什么都没留下…
展开
-
Java序列化和反序列化
序列化Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反序列化把文件存储对象字节转换为对象序列化相关类把对象变成字节:ObjectOutputStream把字节变成对象:ObjectInputStream序列化操作遇到问题:要进行序列化类必须实现Serializable接口,只有实现了这个接口之后,这个类对象才可以进行序列化操作,如果没有实现,报错。原创 2021-09-05 09:44:43 · 102 阅读 · 0 评论 -
Java实现CRUD操作
Java实现CURD操作,最基础的版本import org.junit.Test;import java.sql.*;public class JDBCDemo01 { public static void main(String[] args) {// testSelect();// testInsert();// testUpdate(); testDelete(); } //删除 public原创 2021-08-30 10:02:16 · 2110 阅读 · 0 评论 -
多线程安全问题
线程安全当使用多个线程访问同一资源(可以是同一个变量、同一个文件、同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题,但是如果多个线程中对资源有读和写的操作,就容易出现线程安全问题。要解决上述多线程并发访问一个资源的安全性问题:也就是解决重复票与不存在票问题,Java中提供了同步机制。(synchronized)来解决。(1)编写例子演示线程安全问题模拟 3个售票员 卖 30张票第一步 创建资源类,在资源类定义属性和操作方法第二步 在资源类操作方法进行 判断 干活第原创 2021-08-25 10:40:55 · 355 阅读 · 0 评论 -
StringBuilder 和 StringBuffer
可变字符序列因为String对象是不可变对象,虽然可以共享常量对象,但是对于频繁字符串的修改和拼接操作,效率极低。参考: String JVM结构分析StringBuilder 和 StringBuffer都是为了改进String的内存空间问题。StringBuilder:是线程不安全的,推荐;StringBuffer: 是线程安全的;常用的API,StringBuilder、StringBuffer的API是完全一致的(1)append(xx):拼接,追加(2)insert(int i原创 2021-08-24 20:48:49 · 105 阅读 · 0 评论 -
Java字符串JVM结构分析
1、字符串String类(型)本身是final声明的,即不能继承String类。2、字符串对象也是不可变对象,意味着一旦修改,即产生新的对象。3、String对象内部是用字符数组保存的。JDK1.9之前有一个char[] value数组,JDK1.9之后byte[]数组"abc" 等效于 char[] data={ 'a' , 'b' , 'c' }。4、因为字符串对象设计为不可变,所以字符串有常量池来保存很多常量对象。常量池在方法区。如果细致的划分:(1)JDK1.6及其之前:方法区原创 2021-08-24 20:00:53 · 388 阅读 · 0 评论 -
实现Comparable接口和Comparator接口
声明一个Employee员工类,包含编号、姓名、薪资,实现Comparable接口,要求,按照薪资比较大小,如果薪资相同,按照编号比较大小。声明一个测试类TestEmployee类,在main中创建Employee[]数组,长度为5,并且存储5个员工对象,现在要求用冒泡排序,实现对这个数组进行排序,遍历结果。练习1:声明一个Employee员工类,包含编号、姓名、薪资,实现Comparable接口,要求,按照薪资比较大小,如果薪资相同,按照编号比较大小。声明一个测试类TestEmployee类,在m原创 2021-08-23 14:00:56 · 533 阅读 · 0 评论 -
Java接口
接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。引用数据类型:数组,类,接口。在JDK8之前,接口中只运行出现:(1)公共的静态的常量:其中public static f原创 2021-08-23 13:23:44 · 272 阅读 · 0 评论 -
HashCode
Hash值和Java对象的HashCode参考:https://www.zhihu.com/question/21801702 到底什么是哈希值,哈希值到底是怎么生成的,有什么用?https://blog.csdn.net/weixin_29587015/article/details/114193650 java对象的哈希值_对象的哈希值...原创 2021-08-22 21:36:02 · 89 阅读 · 0 评论 -
Java面向对象之多态
7.2 多态7.2.1 引入多态是继封装、继承之后,面向对象的第三大特性。生活中,比如求面积的功能,圆、矩形、三角形实现起来是不一样的。跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态。7.2.2 定义多态: 是指同一行为,具有多个不同表现形式。7.2.3 前提【重点】继承父类或者实现接口【二选一】方法的重写【意义体现:不重写,无意义】父类引用指向子转载 2021-08-22 21:29:18 · 269 阅读 · 0 评论 -
JVM内存的管理
方法区:类的信息、常量、静态变量、动态编译生成的字节码信息虚拟机栈:Java语言实现的方法的局部变量本地方法栈:非Java语言实现的方法的局部变量,即native方法执行时的内存区域堆:new出来的对象程序计数器:记录每一个线程目前执行到哪一句指令;注:native:本地的,原生的用法: 只能修饰方法 表示这个方法的方法体代码不是用Java语言实现的。 但是对于Java程序员来说,可以当做Java的方法一样去正常调用它,或者子类重写它。...原创 2021-08-22 21:22:27 · 65 阅读 · 0 评论 -
Java面向对象继承
一、继承私有变量:父类中的成员,无论是公有(public)还是私有(private),均会被子类继承。子类虽会继承父类私有(private)的成员,但子类不能对继承的私有成员直接进行访问,可通过继承的公有方法进行访问。重名问题:子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用super 关键字,修饰父类成员变量。如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。必须保证父子类之间方法的名称相同,参数列表也相同。原创 2021-08-22 21:16:24 · 90 阅读 · 0 评论 -
Java面向对象
一、对象名中存储的是什么呢?答:对象地址,直接打印对象名和数组名都显示“类型@对象的hashCode值”,所以说类、数组都是引用数据类型,引用数据类型的变量中存储的是对象的地址,或者说指向堆中对象的首地址。二、实例变量有默认值,而局部变量没有默认值,必须先声明,赋值,再使用。三、可变参数格式:修饰符 返回值类型 方法名(【非可变参数部分的形参列表,】参数类型... 形参名){ }要求:(1)一个方法只能有一个可变参数(2)可变参数必须是形参列表的最后一个(3)其实这个书写“等价于”原创 2021-08-22 11:11:02 · 58 阅读 · 0 评论 -
Java问题整理
一、字符编码问题当cmd命令行窗口的字符编码与.java源文件的字符编码不一致,使用javac命令,指定源文件字符编码:javac -encoding utf-8 HelloWorld.java二、基本数据类型long类型:要加 L 表示,精度为科学记数法的小数点后15~16位;float类型:要加 F 表示,精度为科学记数法的小数点后6~7位。三、变量使用注意1、先声明后使用2、使用之前必须初始化四、Unicode字符0:48A:65a:97五、进制问题(1)十进制:正常表示原创 2021-08-21 14:21:48 · 101 阅读 · 0 评论 -
Java 8 StreamAPI操作示例
文章目录创建Stream的四种方式Stream的中间操作Stream的终止操作Collectors实用类创建Stream的四种方式创建Stream主要有四种方式,如下。// 创建 Stream 方式一: 通过集合 @Test public void test1(){ List<Apple> apples = AppleData.getApples();// default Stream<E> stream(): 返回一个顺序原创 2021-05-15 11:55:50 · 314 阅读 · 1 评论 -
Java泛型通配符
转载:https://www.cnblogs.com/minikobe/p/11547220.html 前言 泛型带来的好处 泛型中通配符 常用的 T,E,K,V,? ?无界通配符 上界通配符 < ? extends E> 下界通配符 < ? super E> ?和 T 的区别 `Class`和 `Class`区别 小结 前言Java 泛型(gener转载 2020-11-09 17:48:24 · 115 阅读 · 0 评论 -
使用Java字节流复制图像文件
使用Java字节流可以复制一切文件,因为计算机底层文件即是字节组成。字节流复制思想: 字节是一切文件的组成,所以字节流适合所有文件的复制 字节流适合做一切文件复制复制文件思想: 1.创建字节输入流,读取文件到内容,获取文件内容 2.创建字节输出流,以刚才输入流内容作为数据源,写入磁盘例子如下:复制了图片,图片源路径为当前工程下src文件中,目标文件路径及文件名可以自定义,但文件格式需要一样(都是png图像)代码如下:import java.io.*;原创 2020-11-09 15:11:06 · 284 阅读 · 0 评论 -
Java文件流
一、IO流的分类: 按流的方向分为:输入流和输出流 输入流:把数据从磁盘读入到内存,即读取数据到内存; 输出流:把数据从内存输出到磁盘,即写数据到文件,或发送数据给别人。‘ 按流的内容分为:字节流和字符流 字节流:流中的数据的最小单位是一个一个的字节(如音视频文件); 字符流:流中的数据的最小单位是一个一个的字符(针对文本内容) 所以流大体分为四类:字节输入流、字节输出流、字符输入流、字符输出流。二、细分 字节输入流:InputStream...原创 2020-11-09 15:05:22 · 120 阅读 · 0 评论 -
java集合框架Map应用实现:统计字符串每种字符个数
目标:输出一个字符串中每个字符出现的次数 分析: 用Map存储,key = 字符, value = 该字符出现的次数运行结果如下:实现如下:MapDemo.javaimport java.util.HashMap;import java.util.Map;import java.util.Scanner;/** 目标:输出一个字符串中每个字符出现的次数 分析: 用Map存储,key = 字符, value = 该字符出现的次数 */pub.原创 2020-11-08 16:48:09 · 382 阅读 · 0 评论 -
java集合框架List的应用实现:扑克游戏
面向对象程序设计案例:一个扑克游戏,实现定义一副扑克,实现洗牌、发牌、看牌功能分析:a. 定义一个牌类,代表牌对象,一个牌对象代表一张牌b. 定义一个集合,存储54张牌,集合只需一个(因为牌只需要一副)运行结构如下具体实现如下:Card类:public class Card { private String number; private String color; public Card() { } public Card.原创 2020-11-08 16:43:44 · 213 阅读 · 0 评论 -
Java集合框架:Collection、Map
原创 2020-11-07 19:48:50 · 78 阅读 · 0 评论 -
正则表达式语法规则及示例
正则简介:1、使用特殊符号来做校验,目的只有一个,即是操作字符串。2、优点:简化书写 缺点:阅读性差3、语法规则:4、示例:用户注册表单示例如下:其中:pattern属性为正则表达式,required属性表示为必填项运行结果如下:...原创 2019-03-23 10:48:12 · 332 阅读 · 0 评论 -
JSP九大内置对象常用方法及解析
JSP九大内置对象(主要)out : 输出对象,向客户端输出内容request:请求对象;存储“客户端向服务器发送的请求信息” String getParameter(String name):根据请求的字段名key,返回value值; String[] getParameterValues(String name):根据请求的字段名key...原创 2019-03-13 13:11:18 · 509 阅读 · 0 评论 -
Java集合框架学习笔记及完整源码案例浅析
一、集合的应用场景- 无法预测存储数据的数量- 需要进行数据的增删改查二、集合框架的体系结构- 接口Collection有三个子接口List(实现类为ArrayList、LinkedList)、Queue(实现接口为LinkedList)、Set(HashSet);- 接口Map的实现类为HashMap三、List(列表)- List是元素有序并且可以重复的集合,称...原创 2019-03-03 13:54:48 · 261 阅读 · 0 评论