day02Java牛客刷题总结

1.Java语言与其它语言相比,独有的特点是平台无关

2.Iterator  支持从源集合中安全地删除对象,只需在 Iterator 上调用 remove() 即可。如果在循环的过程中调用集合的remove()方法,就会导致循环出错

3.Java的关键字

1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

2)2个保留字(现在没用以后可能用到作为关键字):goto、const。

3)3个特殊直接量:true、false、null。 

4. 采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。任何一个对象系统都会为其创建一个互斥锁,这个锁是为了分配给线程的,防止打断原子操作。每个对象的锁只能分配给一个线程,因此叫做互斥锁。

5.结构型模式中最体现扩展性的模式是装饰模式

6.Java中一般通过interrupt方法中断线程,线程使用了wait方法,会强行打断当前操作,进入阻塞(暂停)状态,然后需要notify方法或notifyAll方法才能进入就绪状态。

7.私有:java虚拟机栈,程序计数器,本地方法栈 。共享:java堆,方法区。

8.在J2EE中,使用Servlet过滤器,需要在web.xml中配置filter,filter-mapping元素

9.run方法是线程内重写的一个方法,start一个线程后使得线程处于就绪状态,当jvm调用的时候,线程启动会运行run。run函数是线程里面的一个函数不是多线程的。

10.Collection

11.

CopyOnWriteArrayList适用于写少读多的并发场景。

ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥,读与读之间可以并发执行。在读多写少的情况下可以提高效率。

ConcurrentHashMap是同步的HashMap,读写都加锁

volatile只保证多线程操作的可见性,不保证原子性

12.java提供了一个系统级的线程,即垃圾回收器线程。用来对每一个分配出去的内存空间进行跟踪。当JVM空闲时,自动回收每块可能被回收的内存,GC是完全自动的,不能被强制执行。程序员最多只能用System.gc()来建议执行垃圾回收器回收内存,但是具体的回收时间,是不可知的。当对象的引用变量被赋值为null,可能被当成垃圾。

13.spring没有提供AOP方式的日志系统
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态***实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。
Spring通过对AOP的支持,借助log4j等Apache开源组件实现了日志系统。

14.正则表达式的规则

1)任意一个字符表示匹配任意对应的字符,如a匹配a,7匹配7,-匹配-。

2) []代表匹配中括号中其中任一个字符,如[abc]匹配a或b或c。

3) -在中括号里面和外面代表含义不同,如在外时,就匹配-,如果在中括号内[a-b]表示匹配26个小写字母中的任一个;[a-zA-Z]匹配大小写共52个字母中任一个;[0-9]匹配十个数字中任一个。

4)^在中括号里面和外面含义不同,如在外时,就表示开头,如^7[0-9]表示匹配开头是7的,且第二位是任一数字的字符串;如果在中括号里面,表示除了这个字符之外的任意字符(包括数字,特殊字符),如[^abc]表示匹配出去abc之外的其他任一字符。

5)表示匹配任意的字符。

6) \d表示数字。

7) \D表示非数字。

8) \s表示由空字符组成,[ \t\n\r\x\f]。

9) \S表示由非空字符组成,[^\s]。

10)\w表示字母、数字、下划线,[a-zA-Z0-9_]。

11) \W表示不是由字母、数字、下划线组成。

12)?: 表示出现0次或1次。

13)+表示出现1次或多次。

14)*表示出现0次、1次或多次。

15) {n}表示出现n次。

16) {n,m}表示出现n~m次。

17) {n,}表示出现n次或n次以上。

18) XY表示X后面跟着Y,这里X和Y分别是正则表达式的一部分。

19) X|Y表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f。

20) (X)子表达式,将X看做是一个整体。

15.join()和wait()都会释放锁资源,join的底层也是调用wait方法。

16.LinkedBlockingQueue是一个可选有界队列,不允许null值PriorityQueue是一个无界队列,不允许null值,入队和出队的时间复杂度是O(log(n))。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值