- 博客(30)
- 收藏
- 关注
原创 IO流字节流字符流节点流处理流properties
只要是Reader的子类,BufferReader都可以对其操作,从而读取不同类型,Char数组,文件都可以。BufferWriter同理。mysql.properties文件所在位置。对象处理流可以处理序列化和反序列化。演示fileinput。
2023-05-07 17:10:41
45
原创 绘图入门和机制
加入setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);才会在关闭窗口后结束程序。每当窗口放大缩小都会调用一次paint方法。关闭窗口后不会立刻结束程序。JFrame就是窗口。
2023-04-23 17:10:42
36
原创 线程,锁,synchornize
yield是由cpu来决定执行哪个线程,如果当cpu资源紧缺时候yield就会生效,优先执行指定线程,如果当cpu资源充裕时候yield不生效。而用start方法就会调用jvm里面的start0方法再调用run方法,这时候调用了线程,是并行的。用run方法此时线程就只有main方法在走,调用完一个方法在调用下一个方法,没有启动线程,这是串行。这里不调用run()方法是因为run()方法只是普通方法,不能作为线程,start()才是线程。synchronized(object)+代码块。
2023-04-23 17:10:04
48
原创 自定义泛型,junit的使用
2.指定泛型,是在extend之后才实现指定泛型的具体类型的。泛型方法可以自己声明自己用一个其他的泛型也可以用类声明的泛型。接口的成员属性默认是静态的,所以接口的成员属性都不能用泛型。2.调用泛型方法,会自动识别传参的数据类型。3.普通方法使用泛型,只能用类声明的泛型。3.没有指定类型就默认为object。静态属性或者方法都不能用泛型。使用泛型的数组不能初始化。1.静态成员都不能用泛型。实现的方法也会自动替换。
2023-04-11 22:08:37
54
1
原创 Java泛型
4.person中,其实可以指代任意数据类型,可以让创造出的对象既有String类型又有Integer类型。当为时候,就只能传入String类型的值。2,如若加入非dog类,向下转型时候就会报错。2当你加入非dog类型时候编译器会提前报错。1,遍历需要向下转型所以效率不够高。
2023-02-20 00:23:05
36
原创 linkedhashset
当加入新对象是因为是new出来的对象所以不会查重复,需要更改Car对象的hashcode和。要让name和price同时相同equals才为真,所以两个都勾上。
2023-02-19 15:38:47
37
原创 hashmap使用
当后进来的与某个已经存储的hash值一样value不一样,就会挂勾在已储存的位子后面,而且是单向链表。map.putIfAbsent(),如果已有(key值相同)就什么都不做,如果没有就添加。当后进来的与某个已经存储的值完全一样,就会覆盖。如果替代一个不存在的数,不做任何动作。map.replace()修改数据。object b是被替代的数据。查找某个key,返回true。当key值相同,就会覆盖。
2023-02-13 11:23:09
37
原创 Set接口
5.这里的equals是可以给程序员自己编辑比较条件。lucy放到table索引为3的位置。结点Jack挂在结点john后面。将rose结点挂载到jack后。创建Node[]数组。
2023-02-12 00:52:31
30
原创 linkedlist
生成新结点,这个结点的prev = l = null,next=null,item=e=1。把newNode赋值给last,现在整个链子的last指向newNode。l=null进入if语句,现在整个链子的first也指向newNode。先把last赋值给l,l = last = null。整个链的头(first)指向第二个结点。整个链子的结点数减一(3-1=2)remove()是删除第一个结点。最后返回删除的第一个结点的内容。把第二个结点的prev制空。把f的内容和next制空。
2023-02-08 16:05:14
62
原创 Java集合遍历(迭代器,增强for,普通for)
迭代器作用如图所示如果已经到了最后一个元素,再执行.next就会报错先生成一个迭代器while判断是否还有下一个元素,有下一个元素才输出,元素的内容会返回到iterator.next()里。
2023-01-31 21:41:28
115
原创 StringBuffer
与String相比,StringBuffer有自动扩容机制,储存在堆中的value数组中,修改内容后还是指向value数组。而String储存在常量池,修改内容后就指向新的对象。appendNull源代码,调用后会加null这四个字母,所以sb.length为0+4=4,输出是“null”把str传入构造器会造成空指针异常。
2023-01-14 18:33:14
36
原创 String类型
而s1==s2中,s1指向s1在堆中创造的value数组(可以称之为v1),s2指向s2在堆中创造的value数组(可以称之为v2),所以s1==s2为false。当变量c = 变量a+变量b,会先把a和b指向的对象存放在堆的value中,最后再调用tostring方法生成新的常量值helloabc然后指向它。要注意p1.name==p2.name比较的是p1.name和p2.name指向谁,而不是p1和p2指向谁。但是b指向堆中的value,b.intern指向的是常量池,所以==为false。
2023-01-13 17:31:38
75
原创 Java三元运算符
在这里,三元运算符是一个整体,表达式2出现了double类,所以整个三元运算符会自动提升至这里的觜高精度double而不是较低精度的int。表达式1 : 表达式2;条件表达式为True则为表达式1。
2023-01-10 01:11:25
47
原创 throws
先演示一下错误的代码,不能运行可以用throws来对错误的代码进行处理使其可以运行,然后谁调用的f2,谁就要去处理这个f2里的异常throw后面可以跟Exception或者Exception的子类(代码的错误属于那一类的)throw后面可以跟多个错误类,但是一般用一个Exception来替代会方便点。
2023-01-05 16:41:44
49
原创 java异常处理
主要学习Java的异常处理的方法try catch是什么?当某段代码可能会报错时候就会出现程序终止,如果用try catch来捕获这段代码就能让程序不会终止运行下去。用Ctrl+alt+t选中try catchnum1 = 10num2 = 0把catch的代码块换成e.getMessage可以输出异常信息异常介绍异常体系图ctrl+b进入Throwable后右键选择diagrams然后选择show左上角I的虚线表示是实现了某个接口,其他实线表示子类和父类的关系。
2023-01-01 19:45:19
262
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人