JavaSE的API记录

Unsafe:

改类被标识为final,是并发包中的底层,可直接绕过jvm实现对内存的操作,提高程序运行效率。
而改类只能通过反射进行获取,对外使用的getUnsafe()方法只能通过Boot classLoad加载,通过Application classLoad加载则直接报错。

Field field=Unsafe.class.getDeclaredField(“theUnsafe”);
field.setAccessible(true);
Unsafe unsafe=(Unsafe)field.get(null);//强转成Unsafe

//源码

Unsafe:
		  private static final Unsafe theUnsafe;
		  @CallerSensitive
			public static Unsafe getUnsafe() {
				Class arg = Reflection.getCallerClass();
				if (!VM.isSystemDomainLoader(arg.getClassLoader())) {
					throw new SecurityException("Unsafe");
				} else {
					return theUnsafe;
				}
			}
	VM:
		public static boolean isSystemDomainLoader(ClassLoader arg) {
			return arg == null;
		}
Field:
用于反射获取类的属性值。
get(Object obj) :返回此Field,对指定的对象所表示的字段的值。	
	反射获取指定属性的值:
		TestVo testVo = new TestVo();
		testVo.setName("大明");
		//需要反射的类
		Field field = TestVo.class.getDeclaredField("name");
		field.setAccessible(true);
    	System.out.println(field.get(testVo));
	//获取所有字段的值,并且赋予修改数据
		Field[] declaredFields = TestVo.class.getDeclaredFields();
		for (Field field2 :declaredFields) {
    			 field2.setAccessible(true);
    			 String type = field2.getType().getName();
    			 //取值
    			 System.out.println(">>>>"+type+":"+field2.get(testVo));
    			//修改值
    			 field2.set(testVo, "小明");
    			 System.out.println(field2.get(testVo));
		}
transient:
表示不分配内存,不进行序列化,也不进行保存,只能修饰变量
static:
可以修饰变量、方法、代码块、类。只初始化一次 。不被序列化
final:
final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)参与序列化,不影响transient修饰
KMP算法:
场景:1、两个值是否在对方存在,存在返回当前值得位置下标		
最好:O(m+n) o:需要查找的内容 m:是被查找对象长度,n:需要查找的对象长度 |省略f:被查找对象
最坏:O(m*n)
>> | << | >>> | & | | |&&| ||

表示右移,如果该数为正,则高位补0,若为负数,则高位补1; >>
表示左移移,不分正负数,低位补0; <<
表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0;可以和右移运算符一起理解 >>>
演示步奏:1、以上需要先十进制转换成二进制:2、根据位移量进行补0或1的具体操作,3、位移过后在二进制转换成十进制得到结果
&:位运算并且
|:位运算或者
&&:逻辑运算并且
||:逻辑运算或者

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知青先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值