java
文章平均质量分 77
这孩子叫逆
尽人事,听天命
展开
-
冒泡排序,选择排序,jdk排序
原理:固定一个下标位置,使其他下标位置与固定下标位置的值进行比较,根据比较结果决定是否换位。java.util.Arrays.sort(数组名):对数组内容进行。原理: 让相邻位置的值进行比较,根据比较结果决定是否换位。实现: 外层循环表示比较轮数,内层循环表示比较次数和下标。实现: 外层循环表示固定下标,内层循环表示与其比较的下标。特点: 每轮比较之后,都会从后往前确定一个位置的元素。特点: 每轮比较之后,固定下标位置的值可以被确定。原创 2024-01-19 15:41:51 · 469 阅读 · 0 评论 -
java中==号与equals比较的区别以及各自的作用
因为 官方认定,-128至127是包装类型中最常用的256个数字,所以在方法区中设立了整数缓冲区存放这些数字,当使用的数字在此区间之内,将不会开辟堆空间,使用缓冲区中的内容,目的为减少空间浪费,节约空间资源。所以只要是整数缓冲区的数字,就相当于在整数缓冲区开辟了相同的空间,所以==号比较两个引用的地址相同,返回值为true。(1)equals()比较基本类型时比较的也是内容,所以一般比较基本类型时用==号就可以了。比较引用类型时比较的是地址(比较包装类时比较的也是地址)类库中的引用类:已经重写,直接调用。原创 2024-01-18 19:34:40 · 556 阅读 · 0 评论 -
java基础之设计模式(单例模式,工厂模式)
键值不可添加双引号、末尾不可添加分号、中间不可存在多个符号(如空格)在懒汉式的基础上,利用同步代码块结合二次校验提高执行效率。是一种底层技术,通常用于底层框架的编写。思路: 将数据的创建和维护交由工厂完成。需求: 构建一个工厂类,获取学生对象。作用: 存放被管理类的全限定名。在获取实例是创建唯一对象。一个类只能创建一个实例。缺点: 有可能浪费空间。在项目下创建后缀名为。一行只能有一个键值对。原创 2024-01-17 16:25:59 · 886 阅读 · 0 评论 -
java基础之反射
/利用有参构造器获取类的实例对象 Student student3 = con.newInstance("张三", 20, 88.5);//无泛型的类对象-构建类的实例 Student student1 = (Student) c1.newInstance();//有泛型的类对象-构建类的实例 Student student2 = c2.newInstance();> getDeclareConstructor(参数列表的类对象): 获取类对象中的有参构造器对象。利用有参构造获取类的实例。原创 2024-01-17 16:23:23 · 442 阅读 · 0 评论 -
java基础之线程练习题
A.线程对象必须实现Runnable 接口B.启动一个线程直接调用线程对象的 run()方法C.Java 对多线程同步提供语言级的支持 synchronizedD.一个线程可以包括多个进程 A. 一个虚拟处理器(CPU) B. 执行的代码 C. 代码操作的数据 D. 以上都不是A.一旦一个线程被创建,它就立即开始运行 sleepB.使用start()方法可以是一个线程成为可运行的,但它不一定立即开始运行C.最多只能有一个线程处于就绪状态D.调用sleep原创 2024-01-16 16:19:28 · 1233 阅读 · 0 评论 -
java基础思维导图
原创 2024-01-16 16:01:52 · 509 阅读 · 0 评论 -
java基础之线程安全问题以及线程安全集合类
当开启互斥锁之后,线程想要访问对象,则在需要拥有时间片的基础上也拥有锁标记,锁标记只能被一个线程拥有,拥有时间片和锁标记的线程才能执行自身内容,在此期间,其他线程只能等正在执行的线程执行结束释放锁标记和时间片之后才能进入就绪状态。当集合进行写(增删改)操作时,会先复制出一个副本,在副本中进行写操作,如果过程中出现线程安全问题,则舍弃当前副本,重新复制新的副本重复操作,直至副本中无异常,再将集合引用地址转换向副本地址,一次确保原集合中一定不会发生安全问题。JDK5.0,发布了一批无锁机制的线程安全的集合类。原创 2024-01-15 15:03:11 · 584 阅读 · 2 评论 -
java基础之线程知识点
当一个任务需要多次执行时,如果将任务放置于线程对象Thread中,会浪费内存空间导致不合理的并发,线程池可以解决该问题。原创 2024-01-15 15:00:12 · 903 阅读 · 0 评论 -
java基础之IO字符流练习题
而Print Writer中print(Object obj)方法是调用了对象中的toString()方法把对象变为了字符串,存入到文本中去,所以该方法引用的对象可以不用序列化 不用implements Serializable接口。writeObject(Object obj)存放到文本中是以对象形式的,输出的也是对象 所以该方法调用的对象必须实现序列化接口 implements Serializable 以此表明是可读的。(2)为了让该对象某个属性不参与序列化,应当使用。原创 2024-01-13 17:37:23 · 1221 阅读 · 0 评论 -
关于ObjectOutputStream对象输出流与ObjectInputStream对象输入流:写入以及读出没有错误,但是写入的文件出现乱码的问题,该现象与UTF-8,GBK等字符集编码格式无关
对象流写入文件本身就是乱码的,对象流中有一个机制是魔数机制,魔数机制,可以把写进去的字符加密,但是idea会识别到编码错误,其实是正确的加密而已。对象流写入文件本身就是乱码的,对象流中有一个机制是魔数机制,魔数机制,可以把写进去的字符加密,但是idea会识别到编码错误,其实是正确的加密而已。2:发现写入与读出的结果一致,但是打开写入的.txt文本发现文本出现乱码,并且idea编译器会报错提示字符编码集错误。(3)打开ObjectOutputStream流写入的文本发现乱码。(2)控制台输出与代码写入一致。原创 2024-01-13 15:05:13 · 682 阅读 · 0 评论 -
如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用
2023-10-12 09:25:43©著作权文章标签文章分类阅读数IdeaVim 插件已经发布一段时间了,它帮助开发者利用 Vim 的强大功能扩展。JetBrains 内部有一个专属团队维护此插件,这为您提供了两项优势:以键盘为中心的编辑器和 IDE 的支持。Vim为文本中的跳转和修改带来了许多灵活性,移动操作使其成为最受开发者欢迎的文本编辑器之一。在 Vim 中编辑文本非常高效,无需鼠标即可快速导航。在这篇博文中,我们将详细介绍 IdeaVim 插件、其主要功能以及上手方法。原创 2024-01-13 14:04:35 · 1234 阅读 · 0 评论 -
java基础之IO流之字符流
pw只是在读写对象引用的toString方法的结果,并未读写对象的完整信息,所以无法对对象进行序列号及反序列化。基于字节节点流对象. 将字节流中的内容转换为字符流,并在转换过程中设置数据传输的编码集。pw对象中的print|println方法写对象与对象过滤流写对象的区别?对象过滤流是在读写对象的完整信息,所以可以对对象进行序列号及反序列化。println(值): 向目标文件写入一个数据,默认换行。print(值):向目标文件写入一个数据,默认不换行。println(): 向目标文件写入一个空行。原创 2024-01-12 14:06:14 · 484 阅读 · 0 评论 -
java基础之函数
是一段具有特定功能的代码, 特点为可以多次执行.通常情况下一个函数对应一个功能。原创 2024-01-11 09:07:04 · 902 阅读 · 0 评论 -
java基础之IO 节点流 缓冲过滤流 练习题
(2)利用FileInputStream 读入test.txt 文件,并在控制台上打印出test.txt 中的内容。(1) 用FileOutputStream 往当前目录下“test.txt”文件中写入“Hello World”;(2) 读取文件中的内容,将读取的内容连接为一个字符串,并将所有的大写字母转变为小写字母打印输出转换的结果。(1)将 26 个大写字母(A~Z)写入到当前项目a.txt 文件中。(2)有参数的read(byte[] bs)方法的返回值表示。F. .txt 文件。原创 2024-01-11 09:01:34 · 952 阅读 · 0 评论 -
java基础之循环的使用
在满足某个条件的前提下使操作语句反复执行。原创 2024-01-10 17:40:25 · 924 阅读 · 0 评论 -
java基础之公开类
System.out.println("一二\t三四五,\n上山打老虎,\n老虎没打着,\n打着小松鼠.");必须写在第一个类的上方,package语句的下方。一个源文件可以有0-1个package语句。只能引入直属的类, 无法引入子包下的类。一个源文件中可以存在多个导包语句。一个源文件中至多存在一个公开类。import 包名.类名;一个导包语句至多存在一个*将普通字符转义为特殊字符。将特殊字符转义为普通字符。原创 2024-01-10 17:37:22 · 394 阅读 · 0 评论 -
java基础之异常练习题
C.Exception不行D.(1) MyException1 为已检查异常,MyException2 为运行时异常;(2) 这两个异常均具有两个构造函数:一个无参,另一个带字符串参数,参数表示产生异常的信息。try {throw new MyRuntimeException("我的详细信息");22.在上一题的基础上,把下面代码补充完整。输出ex1详细放大调用栈信息int n;n=3;try {m(n);原创 2024-01-10 17:31:56 · 1594 阅读 · 1 评论 -
java基础之IO流1
自定义类必须实现Serializable接口,表示允许被序列化,否则IO流没有读写权限序列化:拆分对象信息的过程反序列化:通过信息组装对象的过程将属性通过transient修饰符修饰则可以防止其参与序列化如果对象中有自定义类型的属性,则必须使该属性类型也实现序列化接口或者通过transient修饰符对其修饰//防止被序列化//省略getter、setter、构造、toStringtry (//输出流//输入流) {//先写//后读。原创 2024-01-10 15:10:31 · 1208 阅读 · 0 评论 -
java基础之Map集合
1. 以键值对的形式存放2. 键(key-K): 无序、无下标、元素不可重复3. 值(value-V):无序、无下标、元素可以重复。原创 2024-01-09 15:27:35 · 770 阅读 · 0 评论 -
java基础之HashMap练习题
⑦ 输入一个员工姓名,查询集合中是否存在该员工,存在-将此员工的工资在原有的基础上加2000,① 利用Map,以班级号作为键(String类型),全班的学生作为值,描述以上所有班级信息。③ 输入一个id,查询是否存在,存在则输出该工人的信息,否则打印输出"查无此人!不存在-打印查无此人。② 输入一个学号,查找是否存在,存在,则输出对应的姓名,否则输出"查无此人!①使用 Map,以老师的名字作为键,教授的课程名作为值,表示上述课程安排。① 打印输出所有的信息,打印格式要求: 学号-1000,姓名-张三。原创 2024-01-09 11:30:31 · 1217 阅读 · 0 评论 -
java基础之set集合练习(HashSet,LinkedHashSet,TreeSet)
System.out.println("输入学生信息,格式为:张三/18/男/99.5 输入:0退出");break;System.out.println("没有参加考试的学生:"+s);return -1;});原创 2024-01-08 11:38:34 · 889 阅读 · 1 评论 -
在使用foreach 与 Iterator 时不能有数据的修改以及循环内部累加器
纪录了有改变list大小等结构性变化或者其他使得遍历过程中产生不正确的结果的其它方式的次数,它的初始值为0,当每次迭代器被调用时,其值会被初始化成该list的大小。的值是否相等,如果不相等则直接抛出上文中的 ConcurrentModificationException。,因此,无法使用foreach循环对list进行添加删除等操作。那么,如何通过遍历进行list的增删操作呢,再次回到。的值是如何定义的,在代码的开头部分初始化。,改变了值大小,当迭代器再次执行。,即两者的值是相等的。原创 2024-01-08 11:32:25 · 915 阅读 · 0 评论 -
java基础之list 与set集合(ArrayList,LinkedList,HashSet,LinkedHashSet,TreeSet)
是一个容器,可以存放多个数据.通常用来替代数组。原创 2024-01-06 17:30:01 · 1504 阅读 · 0 评论 -
java练习题之List(ArrayList)集合练习
ArrayList底层是数组结构 所以他是有序的 查询快,增删慢 线程不安全,效率高LinkedList底层是链表结构 查询慢 增删快 线程不安全,效率高Vector 底层数组实现都慢 线程安全,效率低① 属性:用户名、密码、是否在线(是-true)② 提供有参数、无参数的构造方法③ 创建多个对象,存储在集合中,并统计在线用户数量,打印在控制台上。return "用户名"+name+"密码"+password+"是否在线"+zaixian;原创 2024-01-05 21:42:39 · 1795 阅读 · 2 评论 -
java练习题之String方法运用
① 属性:身份证号,姓名,性别,年龄,户籍,出生日期(String类型,"1998-09-09")② 属性私有化,提供get/set,构造方法③ 介绍格式:(toString)姓名+户籍+年龄④ 提供对象比较equals方法,只要身份证号+姓名相同就认为对象相等⑤ 写一个测试类,定义一个Person数组,创建多个Person对象存储在数组中,i. 打印输出所有Person对象的信息ii. 用控制台输入一个Person信息:(注意:跟昨天的输入有区别!!!原创 2024-01-04 21:58:36 · 1185 阅读 · 1 评论 -
java练习题之常用类Object类,包装类
① 每个属性都使用private修饰,为每个属性设置setter和getter方法。② 设置无参的构造方法③ 设置有参的构造方法Point(int x,int y)④ 设置有参的构造方法Point(Point p)⑤ 重写toString()方法,用于输出坐标点的信息⑥ 重写euqals()方法,用于对两个坐标点进行比较⑦ 创建两个对象,判断对象坐标是否相同。this.x = x;this.y = y;return x;this.x = x;return y;原创 2024-01-03 14:14:50 · 1091 阅读 · 1 评论 -
java基础之常用类Object,包装类
最大父类,也称为祖宗类.原创 2024-01-02 17:07:28 · 1046 阅读 · 0 评论 -
java idea中做一个简易的图书管理系统(控制台输入输出,无数据库)
(1)普通用户NormalUser类。(2)管理员用户AdminUser类。原创 2024-01-01 23:40:12 · 1878 阅读 · 1 评论 -
java基础知识点,封装,继承,多态,instanceof 重点笔记
面向对象的三大核心思想: 封装、继承、多态。原创 2023-12-31 22:51:21 · 1913 阅读 · 0 评论 -
java基础之内部类
在类的内部再次声明定义类。原创 2023-12-28 21:22:11 · 904 阅读 · 0 评论 -
超级烧脑的java接口扩展练习题(封装+继承+多态+实现+相互调用+多个实现类)
——完成以下游戏角色内容————封装、继承、多态—————————注:某些方法的形参列表、返回值可以根据情况调整,并非固定不可变父类:Role(角色),是所有职业的父类1)属性:name,表示角色的名字2)方法:public int attack(),该方法返回值为角色的攻击对敌人的伤害。原创 2023-12-27 15:47:31 · 1254 阅读 · 1 评论 -
java练习题之接口interface练习
方法的功能为:求参数的阶乘“long intPower(int m , int n)”方法的功能为:求m 的n 次方“boolean findFactor(int m,int n)”方法的功能为:判断参数的和是否大于 100定义类实现接口,编写应用程序,调用接口中的 3 个方法,并将调用方法的结果输出。MediaPlayer有三个实现类,分别是:DVDPlayer,表示DVD播放器;CDPlayer,表示CD播放器;TapePlayer,表示收音机(播放磁带)。原创 2023-12-26 21:40:27 · 1364 阅读 · 0 评论 -
java练习之abstract (抽象) final(最终) static(静态) 练习
private static final 之间可以任意结合abstract 不可以与private static final 结合使用A. abstract 类中可以没有 abstract 方法B. abstract 类的子类也可以是 abstract 类C. abstract 类不能创建对象,但可以声明引用D. abstract 方法不能有方法体return id;System.out.println("吃饭方法");原创 2023-12-25 21:37:10 · 1405 阅读 · 0 评论 -
java中静态修饰符(static)的使用
子类可以继承和重写父类静态方法,但是在多态的前提下,仍然执行父类内容。静态内容是在类加载时进入内存,但是非静态内容是在创建对象时进入内存。静态属性封装之后,必须调用getter|setter方法才能访问。作用为构造方法共有内容的提炼,通常用于给属性赋值。,先执行初始代码块再执行构造内容,可以执行多次。静态内容在内存中只有一份,被该类所有对象共享。静态属性,也称为静态变量 类变量等。全限定名:类的完整路径,也就是。子类类加载也会触发父类的类加载。静态内容的执行关注的是引用类型。,将字节码文件中的内容加载到。原创 2023-12-23 17:29:46 · 1037 阅读 · 0 评论 -
java练习题之多态练习
public void eat(){ System.out.println("人的吃饭方法");6:(多态)在继承题目的基础上,定义一个 Person 类型的数组,存储多个不同类型的子类型对象,(1) 统计并打印输出数组中所有学生干部的个数(2) 打印输出所有学生的信息。原创 2023-12-22 22:39:50 · 2421 阅读 · 0 评论 -
java练习题之继承
包括的方法:吃饭、睡觉,工作(1) 根据人类,定义一个学生类,增加属性:学校、学号;重写工作方法(实现内容为学习)(2) 根据人类,定义一个工人类,增加属性:单位,工龄;重写工作方法(3) 根据学生类,定义一个学生干部类(StudentLeader),增加属性:职务;增加方法:开会(4) 定义一个测试类,分别创建上述 3 类具体人物的对象并将信息打印在控制台上。String sex;int age;System.out.println("人的吃饭方法");原创 2023-12-21 21:11:12 · 1129 阅读 · 2 评论 -
超详细的 javase 重点笔记大全
从java的角度: “万物皆对象”.对象是一个操作单位, 所有内容都可以被认定为是一个对象(一个操作单位)从程序的角度: 对象是内存中的一块存储空间, 存放着现实生活中对象特征和行为的具体信息抽象的,不是真实存在的运行时异常:继承RuntimeException需要提供有参构造给最大父类Throwable中的详细信息属性赋值/*** 自定义运行时异常类*/非运行时异常:继承Exception构造要求与运行时异常一致/*** 自定义非运行时异常*/原创 2023-12-20 21:51:27 · 1286 阅读 · 1 评论 -
java练习题之继承(创建对象时属性先赋值输出再执行构造方法)
(1) 根据人类,定义一个学生类,增加属性:学校、学号;重写工作方法(实现内容为学习)(2) 根据人类,定义一个工人类,增加属性:单位,工龄;重写工作方法(3) 根据学生类,定义一个学生干部类(StudentLeader),增加属性:职务;增加方法:开会(4) 定义一个测试类,分别创建上述 3 类具体人物的对象并将信息打印在控制台上。String sex;int age;System.out.println("人的吃饭方法");System.out.println("人的睡觉方法");原创 2023-12-20 21:42:11 · 1158 阅读 · 0 评论 -
java练习题之方法重载+封装
①对类进行封装,私有化属性,并提供公开的get/set方法,设置 email 采用格式为:用户名加 上”@zparkhr.com.cn”;查看密码处理为 xxx②提供带有两个参数的构造方法,为用户 ID 和用户密码赋值,同时提供带有三个参数的构造方法③定义一个测试类,分别利用不同的构造方法创建对象,并利用方法,展示用户的信息。return id;①对类进行封装,属性私有化,并提供公开的 get/set 方法;原创 2023-12-19 21:26:37 · 1036 阅读 · 0 评论 -
java面向对象练习题,无重载版
①提供一个无参数的构造方法和一个带有三个参数的构造方法②类中定义一个无参数的play 方法:输出 宠物狗③ 定义一个带有一个参数的play 方法,参数类型为 int hours,打印输出玩的小时数④定义一个测试类,分别用无参数的构造法和有参数的构造方法创建对象,并对属性赋值,分别将对象的 信息打印在控制台上,调用play 方法System.out.println("宠物狗");System.out.println("玩了"+hours+"个小时");d.name="小明";原创 2023-12-18 21:21:15 · 1169 阅读 · 0 评论