2020-10-29

一、如何上网
使用GHelper浏览器插件
二、ArrayList或LinkedList的有序与treeset数据结构的有序不是一个概念
1.List集合的有序是指取数据的顺序是与存放数据的顺序是一致的;
2.treeset的有序是指根据一定的规则有序的存放在树(目前是红黑树这种数据结构)这种数据结构中;
例如,两种集合存放的数据的顺序是 “Bob”,“Amy”,“Carl”,那么两种集合的输出顺序分别如下:
list:Bob,Amy,Carl;
treeset:Amy,Bob,Carl
3.注意!!!!:使用树集的时候,存放的数据必须是可以比较的(即继承了comparable接口)
三、NavigableSet接口
1.这个接口增加了几个便于定位元素以及反向遍历的方法;
2.TreeSet类实现了这个接口
四、Objects.equals(objects的静态方法equals)
1.为了防止进行比较的两者中有为null的参数,可以使用Objects.equals来进行比较;
两个参数都为null,则返回true;
其中一个参数为null,则返回false;
两个参数都不为null,则调用a.equals(b)这个方法的值;
五、Objects.hashCode方法(计算对象散列值)
1.Objects.hashCode方法是null安全的,如果其参数为null,那么这个方法会返回0;
2,这个方法的输入参数必须是对象,不能是基本数据类型;如果是基本数据类型的数据,需要生成对应的包装类或者直接使用对应包装类的静态方法(如Double.hashCode)
3.在计算多个元素的总额hash值时,除了自己定义之外,还可以通过调用Objects.hash(参数1,参数2.。。)来输出一个总的hash值;
六、Comparable接口与Comparator接口的区别
1.Comparable接口是指定某个类必须实现compareTo()方法;
2.Comparator接口是在你不需要使用类中定义的compare方法,而需要定义自己的比较的方法时定义的一个私有的比较器,需要实现的方法是Compare()方法;
3.包装类中的静态方法compare可以比较两个对应类型,并返回int值,如Integer.compare(a,b)
4.Comparator接口中还提供了许多方便的今天方法来提供比较器,如Comparator.comoparing
七、java中如何比较字符串的大小
1.java中字符串的CompareTo方法返回的参数值是比较前后两个字符串的ASCII码的差值;
2.比较大小时,是一个个的比较,前面的字符的占比比后的字符的占比要大;
八、Java中的动态代理
1.动态生成代理类
2020-10-29

2.在中介类中可以额外的声明其他操作的方法;中介类中持有一个委托类的对象引用,在invoke方法中调用了委托类对象的相应方法;
3.动态代理方式下,委托类必须实现某个接口。
九、Java中的反射
1.对于Class对象,Modifiers.toString(m.getModifiers),其中m可以是Class、Method或者Contructor等类型,可以获取这些参数的访问级别(如public)
2.运行时可以获取对象的相关信息(数据域的实际内容)
例如,f是一个Field类型的对象,obj是某个包含f域的实际对象,那么f.get(obj)将返回一个对象,其值为obj域当前的值;
3.对于Method类,它有一个invoke方法:object invoke(object obj,Object 。。。 args)来调用对应的方法
十、计算机网络中相关概念
1.连接入计算机网络的设备被称为主机或端系统;
2.通信链路:由不同的物理媒介组成(包括同轴线缆、铜线、光纤或者无线电),换句话说就是传递数据的方式或者方法;
3.分组:也就是信息包,所谓的信息包就是当一台端系统向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节这样组成的信息段;
十一、spring aop 注解配置详解
1.切面类:即所有的相关的切面的通知都在这个类中进行定义,!!!!切面对应的是一个java类
2.切入点:使用一个返回值为void,方法体为空的方法来定义切入点,切入点就是定义需要添加各类通知的方法
3.通知:分为各类通知,主要在对应的操作之前使用@Before等注解
4.JoinPoint:可以截取切入点对应方法的相关输入参数;
十二、springMVC类型转换、数据格式化和数据校验(在数据被绑定到请求方法的参数中之前,SpringMVC还完成了以上的工作)(部分)
1.数据绑定:将请求消息中的消息以一定的方式转换并绑定到控制器类的方法参数,核心部件DataBinder起到调度的作用,
2020-10-29

2.数据类型转换
a.使用ConversionService
重新定义ConversionService这个类,来代替默认注册的ConversionService
<mvc:annotation-driven conversion-service = “conversionService”/>
注:这个标签可以主动注册RequestMappingHandlerMapping和RequestMappingHandlerAdapter这两个bean



<bean class=“对应自己定义的转换类>



b.使用注解@initBinder
在路径对应的控制器类中添加对应方法,这个方法不能有返回值,必须声明为void,并用@initBinder注解标识。
这样每次请求都会先调用@initBinder标识的方法,然后再去调用控制器的方法。
十三、springmvc中获取请求参数入参的方法
1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交
2、通过HttpServletRequest(写在方法的接受参数中)接收,post方式和get方式都可以
public String addUser2(HttpServletRequest request)
request.getParameter(“username”)
3、通过一个bean来接收,post方式和get方式都可以
建立一个和表单中参数对应的bean
将这个bean写在接受方法中: public String addUser3(UserModel user)
4、通过@PathVariable获取路径中的参数(单个数据)
@RequestMapping(value=”/addUser4/{username}/{password}",method=RequestMethod.GET)
public String addUser4(@PathVariable String username,@PathVariable String password)
5、使用@ModelAttribute注解获取POST请求的FORM表单数据
6、用注解@RequestParam绑定请求参数到方法入参(键值对,?之后的数据)
注:@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充

.