- 博客(13)
- 收藏
- 关注
原创 9.17单元测试,反射,注解,动态代理
另外,除了@Test,还有@Before,@After(修饰实例方法,每个方法执行前后都执行一次),@BeforeClass,@AfterClass(修饰静态方法,每个类执行前后执行一次)//此外,还可以用getConstructor(),里面可以填写参数类型,获得特定的一个构造器.比如什么都不填就会获得无参数构造器,这个也只能拿public的。添加注解,可以对类,方法,成员变量做标记,然后可以进行特殊处理. 比如@Test标记,我们想进行测试的时候就可以同时运行所有的@Test方法。
2022-09-19 01:09:10
110
原创 9.15网络通信UDPTCP
但是通常我们不会用IP访问.我们会填写域名,通过dns服务器找到IP. 比如访问www.baidu.com,通过dns服务器找到ip是110.242.68.4,然后计算机会访问这个ip。//拿着这个盘子然后装好韭菜,一定要以字节数组的形式发送,不大于64KB. 再填写对方的地址和端口,这里因为就是一台电脑,所以对方地址和本地地址一样。这个方法获取到的对象是本机地址对象。UDP:UDP是一种无连接,不可靠的数据传输协议. 将双方IP和文件封装成数据包, 每个数据包都小于64KB, 不管对方是否接收到.
2022-09-16 02:12:30
220
原创 9.13多线程,线程安全,线程池,线程通信
1是核心线程数量,最大线程数量是无限大。回到main方法里,我们创建一些任务对象,然后让线程池去执行.这里我们使用execute(),入参runnable的任务. 因为这个任务会让线程休眠很久,所以跑不完的。直接调用start方法启动,注意,此处不能调用run方法.如果调用run方法,系统会认为mythread是一个普通类,run是一个普通方法,不会开启多线程。System.out.println(Thread.currentThread().getName() + "执行了一次任务");
2022-09-16 02:11:32
155
原创 9.12各种IO流
p.store(new FileWriter("javasepromax\\DAY10-oop-demo\\src\\保存配置信息的文件.txt"),"这里可以填写一些注释");对于properties对象,我们可以往里面存入键值对来保存配置信息. 调用的api是setProperty,但其实和map的put是没有区别的,只是为了和map独立开。此时如果之前的对象已经被序列化了,那么更新以后如果存在文件中的对象再被取出,再被反序列化,取出来的数据可能就是过时的没被更新的对象了。
2022-09-13 02:08:42
128
原创 9.11笔记字符集 IO流,文件字节输出输入流,文件字符输入输出流
read() 返回一个int类型的整数,表示的是一个字节. 每次read都会往后推一个字节,比如abc,第一次read会返回a的int97,第二次返回b98,以此类推。比如文件里只有2个字节的内容,此时定义的buffer桶要装3个,那么read方法就会把文件里这两个字节放进数组的前两位索引上,然后返回2,代表这次read了2字节。比如文件一共有1524个字节,此时第一次取一桶水,不会出现问题. 但是第二次取,文件当中只有500个字节了,read会把这500个字节传入数组的0-499索引。
2022-09-12 01:46:12
219
原创 9.7号笔记2
一个是Set:比如hashset linkedhashset treeset 总体特点是无序,不重复,无索引的,但是实际上treeset是默认升序的,linkedhashset是有序的。就是升序 return o2-o1;"字符串".matches(regex:"[a-zA-Z_0-9]{1,20}@[a-zA-Z0-9]{2,10}\\.com[(.cn)]?记录时间主要有两种形式,一种是日期对象,一种是从1970-1-1 00:00:00开始到现在的毫秒值,这两种实际是随便互换的,都是表示时间。
2022-09-11 00:16:56
51
原创 9.7号笔记
String类直接拼接字符串的时候,因为String内容不可变没法拼,所以实际上是每次拼接都要先创建一个StringBuilder,然后再拼接,再toString,非常麻烦。这样告诉他保留两位小数,向上取整,就不出错了。System.arrayCopy(入参1,2,3,4,5) 这个api里面参数太复杂,不可能没必要记住.可以直接ctrl+p来查看。这时候我需要运行一次这个方法, 正常情况我需要先创建一个子类比如老虎,来继承动物类,然后重写这个方法,再创建一个对象,再来完成跑。
2022-09-11 00:15:45
51
原创 9.6号笔记
接口是一种设计模式,里面只能写抽象方法和常量. 因为接口是一种规范思想,规范一定会公开,所以public static final abstract都可以不写。同名的只能搞一个,比如一个包里有student,另一个包里也有student,现在在一个类里两个都要用,这时候只能导一个,第二个要用包名.类名来访问。接口可以继承接口,比如一个类要继承3个接口,那一个一个写很麻烦,可以先让一个接口继承俩,然后再让类继承那一个即可。必须写作文,作文开头结尾都是一样的,可以直接把方法定义好,用final定义更好。
2022-09-11 00:15:08
62
原创 9.5号笔记
如果不加static,就是只能用对象访问,要用到实例成员变量的.比如用Q技能是一个方法,必须先有一个英雄对象,才能用Q技能,这个就要定义成实例成员方法。this()和super()都只能放在第一行,因为任何子类构造器都要先调他爸的构造器,this()和super()不能共存,因为this()调的时候。也调了一个兄弟构造器,那个构造器里也有super(),等于重复了没必要,所以有this()了,super()自动就没了.此时这个this就直接调用了这个类里面能调用的构造器了,也就是上面那个两个参数的构造器。
2022-09-11 00:14:26
55
原创 9.10笔记日志技术 file的常用方法以及递归算法
接下来就可以去创建logback的日志对象了,调用LoggerFactory里面的getLogger方法,入参可以命名要打印的日志,顺便定义成静态final的,返回一个日志对象。第一步,找出递归公式. f(9) = (f(10)+1)*2 假如用n表示天数,f表示剩余的桃子数,那么f(n) = (f(n+1)+1)*2;通过设置日志级别,可以看到自己想看的信息.级别分为五个,程度依次是:trace跟踪,debug调试,info信息,warn警告,error错误。可以知道:f(n) = f(n-1)*n。
2022-09-11 00:10:10
243
原创 9.9笔记,不可变集合,Stream流,异常
代码可以再次简化,利用构造器引用和方法引用,可以写成: names.stream().map(Student::new).forEach(System.out::println);Set.of(元素),返回一个不可变的Set集合,值得注意的是如果创建不可变的Set集合时初始内容里有相同的元素,Set集合会报错. 因为这个集合不可变,但是却有重复元素.处理方法2,trycatch,方法出现问题内部处理,谁出现谁捕获,这个方法是可以的,但是调用者不知道这个方法成功没有,因为方法自己把问题解决了没告诉调用者。
2022-09-10 02:52:08
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人