Java基础知识一
java基础知识,其实所有的知识都是基础知识。在这里权当记录下常用的东西吧。(我只是一个搬运工)
1.lambda表达式中的局部变量要用final
在使用Java8及其高版本的lambda表达式时,在表达式内部引用外部的局部变量时,应该将外部的局部变量声明为final类型,否则不可以用。为什么 Lambda 表达式(匿名类) 不能访问非 final 的局部变量呢?因为实例变量存在堆中,而局部变量是在栈上分配,Lambda 表达(匿名类) 会在另一个线程中执行。如果在线程中要直接访问一个局部变量,可能线程执行时该局部变量已经被销毁了,而 final 类型的局部变量在 Lambda 表达式(匿名类) 中其实是局部变量的一个拷贝。
1.为什么lambda表达式要用final
2.Exception和RuntimeException
在try-catch语句中,如果想在catch语句中抛出异常,应该抛出RuntimeException而不是throw new Exeption,否则会报unhandle的错误.
3.java构建http请求
使用java构建http请求,主要有两种方式,一种时通过原生的 HttpURLConnection 连接,另一种方式就是通过第三方库 Apache HttpClient。 参考文章中已经把很多的方法列的很明白了。
1.JAVA通过HttpClient发送HTTP请求的方法示例 (比较全面)
2.Http持久连接与HttpClient连接池:
3.HttpClient高并发下性能优化-http连接池
4.java中使用Apache HttpClient发送Http请求,并获取返回结果 (这个比较简单)
5.Java实现HttpClient发送GET、POST请求(https、http) (代码也算完整)
6.JAVA发送HTTP请求方式总结: (这里总结了四种,HttpURLConnection、URLConnection、HttpClient、Socket)
7.1、方法一,通过apache的httpclient:
4.java转发与重定向
url转发与重定向的关系:
1)重定向两次请求,转发一次请求
2)重定向地址栏的地址变化,转发地址不变
3)重新定向可以访问外部网站,转发只能访问内部资源
4)转发的性能要优于重定向
转发的方式:
1 | // 转发 |
1.JavaWeb之Request——转发功能的实现
2.javaweb之请求的转发和重定向
3.javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的区别
5.java数组
(1) 数组的声明方式:
1 |
|
(2) 反转数组
1 | Collections.reverse(color_list); |
(3) 数组和list相互转换
1.Java数组详解
6.java中list和数组相互转换
1 | List<Integer> sColorChange = new ArrayList<>(); |
7.HttpServletRequest中读取HTTP请求的body
8.获取当前时间戳
1 | //方法 一 效率最高 |
1.java获取当前时间戳的方法
9.对字符串进行sha1加密
微信接入的时候,需要对字符串进行sha1加密,有两种方式,一种是自己写,一种是使用现成的函数包commons-codec,我选择使用commons-codec包。
1 | <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> |
然后使用:
1 | // MD5 |
10.获取url地址
1 | // 返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。 |
1.HttpServletRequest常用获取URL的方法
11.注解@SuppressWarnings
@SuppressWarings注解,用于抑制编译器产生的警告信息,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量,专家建议注解应声明在最接近警告发生的位置。
1 | // 抑制单类型的警告: |