自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Properties的存入和读取

Properties的getProperty()方法有两种重载方式,一种是getProperty(String key),一种是getProperty(String key,String defaultvalue),两种方式都是先找文件中的指定的key,看是否存在这个key,如果存在则返回key所对应的value值,若不存在,第一种方式直接返回null,第二种方式就是返回所给的 defaultvalue的默认值。Properties中的方法有很多种,最主要的功能就是实现数据的存入和读取。

2023-06-28 15:11:39 636 1

原创 进程和线程的简单应用

对于这种现象,主要是因为当main线程去拷贝票数数据时,再拿了一张票但没有卖出去,此时ticket线程再去读取票数数据时,其实就是main线程卖票之前的数据,当ticket线程卖掉一张后就会出现94的情况(图中的最后一个数据),因此不会出现顺序卖票的现象。对于线程,线程中有一个重要的方法叫做 start() 方法,它能够重新开一个子栈,然后把 run() 方法压到这个子栈中,实现与main() 线程的多线程。一个进程可以包含多个线程,不同的线程可以并发执行,共享进程的资源。

2023-06-10 17:49:43 79

原创 FileInputStream和FileOutputStream

Java中的FileInputStream类是一个用于读取文件的输入流。这一种读取方法是用 byte 数组去作一个缓存作用,就相当于可以存一个 byte 数组的大小的字节,然后按照这个大小地处理,相当于是读取这个数组大小的字节。off 表示起始索引,len 表示需要读取字节的个数,如代码中就是从起始索引为 1 的字节开始读取,读两个,也就是读完起始索引为 2 的字节,共两个字节。write里的参数是整数,其实出现的是本地文件中的整数对应的ascll值,如果要出现整数,则需要整数对应的ASCII值。

2023-05-29 21:10:11 700

原创 自定义异常和集合的概念

我们依然用try-catch块把这个异常捕获,因为我们给年龄赋的值是-1,因此它会捕获这个异常并且打印出来,这个过程是在编译时就已经开始打印了,而不是运行时开始。就这样,我们成功地自定义了一个类。在使用Java集合框架时,应该根据实际需求选择合适的集合类型,并了解这些集合类型的特性和使用方式。在这个类中我们定义了年龄的限制,通过年龄的数据来判断是否抛出异常,如果年龄小于0,则抛出异常,否则是多少岁就是多少岁。除了这些基本的集合类型之外,Java集合框架还提供了一些其他的集合类型,用于满足不同的需求。

2023-05-21 21:18:56 87

原创 java异常处理

Java中异常分为两类,一类是必须要去处理的,称作编译时异常,如:IOException,编译时异常必须在代码中被明确地处理或声明,否则编译器会报错;另一类是可以不去处理的,称作运行时异常,如:RunTimeException,这一类异常通常是由于程序中出现了bug或逻辑错误而引起的,因此这些异常不要求在代码中进行处理或声明。像这个代码中的第一类异常是运行时异常,它是由于逻辑错误所引起的,我们都知道对于除数b而言,b是不能等于0的,而代码中没有考虑这一点,因此抛出了异常;因此两种异常都发生于运行时。

2023-05-14 21:10:27 47

原创 接口的简单介绍

一个类可以实现多个接口,通过实现接口,类可以获取接口中定义的所有方法。接口能给我们带来很多的便利,与抽象类不同的是,接口不能包含具体的方法实现,因此只能由子类自己去实现,这也能增加可读性,让代码不那么松散。一个子类可以实现多个接口,通过实现接口,类可以获取接口中定义的所有方法。为了避免方法冲突,当一个类实现多个接口时,如果这些接口中存在方法签名相同的方法,那么该类必须重写这些方法,提供自己的实现。接口源代码实际上是由实现该接口的类所提供的,这些类必须提供对所有接口方法的实现。

2023-05-10 21:18:33 58

原创 内部类的简单介绍

静态内部类:静态内部类是定义在另一个类内部,但使用static修饰的类。静态内部类不需要依赖外部类的实例就可以创建,可以访问外部类的静态变量和方法,并不能直接访问外部类的非静态变量和方法。Java中有四种内部类:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类:成员内部类是定义在另一个类的内部,并且与外部类同级别的类。上述代码中,内部类 InClass 可以访问外部类 OutClass 的成员变量 member ,并且 createInClass 方法可以创建内部类的实例并调用内部类的方法。

2023-05-04 20:34:18 53

原创 抽象方法和抽象类

再看这个代码,结果还是狗吃骨头,而且父类里的方法似乎已经省略到了最简,如果再省略掉大括号的话,那么编译时就会报错。在我们学过了继承和多态后,我们看到如果子类重写了父类的方法,那么运行时就不会去管父类里的这个方法的内容了,那么我们是否可以用一种方法去省略父类中的内容而不报错呢?而接口有所不同的是,接口只有定义而没有实现,如果你想要实现里面的方法,那么必须要有子类来实现(implements)它。我们可以看到抽象类的强制性,如果你没有在子类重写抽象方法,它就会直接报错,这也可以在我们写代码时很好地提醒我们。

2023-04-23 19:40:19 40

原创 算法【整数反转】

假设有 1254346879 这个数字,它是小于最大的32位整数 2147483647 的,但是将这个数字反转过来后就变成了 9786434521 ,这就比最大的32位整数还要大了,而这个反转整数是不能存到 int 里的,因此要返回 0。如:给你一个整数x,我们先要搞一个循环 while(x>0) 出来,再把反转的数一个个提取出来,因此我们需要让一个整型变量a=x%10,这样就把尾巴上的数一个个地拿出来了。这个题目对于整数有些许要求,但没多大影响,依旧可以用上面的方法写出来,只需要多加一点范围的限制。

2023-04-18 19:51:42 164 1

原创 初步认识KMP算法

KMP算法在这个代码中的优点就是不需要让子字符串在遇到不同字符的情况下重新重头开始匹配,而是通过新构建的next数组来记录子字符串中字符的位置,通过next数组可以快速的跳到该字符的位置。KMP算法主要用于字符串的匹配问题,能够节省时间快速找到匹配项的一种算法。这种算法与暴力匹配算法有所不同。这种暴力解法的逻辑简单,但是耗时长,问题就在于每次有一个字符匹配不成功时,子字符串都要从头开始重新匹配,并且主字符串也会向后走一位。其中toCharArray()方法的作用是:将字符串对象中的字符转换为一个字符数组。

2023-04-11 20:41:47 50

原创 indexOf 和 charAt 的用法

2. indexOf(String str,int index):返回从index位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回-1。1. indexOf(String str):返回指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回-1。第二个输出函数有两个参数,从索引为6的字符开始查找,直到找到字符串“258”的“2”所在的索引12。charAt()方法用于返回指定索引处的字符。这就是indexOf的用法。

2023-04-03 21:42:25 627

原创 对成员变量进行合理的封装和测试

当我把这两个代码放在一个项目中,用不同的java文件去写出这两个代码,我才明白java中的一些规则。最终也是打印出了正确的答案。1.在你的java文件里的public class类外面写class类 前面不能加public。2.在你的java文件里的public class类里面写public class类作为成员。后来我发现在一个java文件中不能有两个独立的public修饰的类存在。这两个代码原先是一起的,但我在编译时却发现编译错误。在这里我想说的是,不管是什么代码都需要有所得。

2023-03-27 11:55:34 178 2

原创 自动类型转换、强制类型转换及常量

来讲,如果赋值号右边只有数字出现,那么这个数字可以被当作常量来看待,当这个数字是在前面类型的取值范围内,那么可以直接赋值给变量a;,此时这个10应当默认是int类型,而不是常量。int类型的存储空间大,转换成byte类型时其补码要舍去多余的部分,而正是这个原因,使得系统输出了切割后的数据。我们都知道这个代码输出的是20,但我们现在有两个不同类型的变量却能进行相加减,这个10代表的类型到底是byte还是int呢?在强制类型转换中,其转换规则与自动类型转换相反,它是从存储范围大的类型转换为存储范围小的类型。

2023-03-19 20:03:11 299

原创 新手入门java的感悟

1、首先在学习java的几周内,了解到了基本的输入和输出方式,能够写出一些简单的代码,但是其中的每一个标识符的了解都不是很深入,只是形成一个肌肉记忆去写出这些简单代码。3、java的学习需要自己多加练习,许多不懂的东西能在写代码之中慢慢体会出来,练多了就能在代码中快速发现问题而且可以提高自身解决问题的能力。2、在学习的过程中遇到过一些报错问题,报错问题主要存在于缺少标点或者是单词打错了,基本可以自己找出来并解决。

2023-03-12 22:16:19 250 1

空空如也

空空如也

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

TA关注的人

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