参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解创作,参考如下:
Java JDK8 新特性Lambda表达式使用
在实际开发中,我们使用Lambda表达式可以提高代码开发效率,代码进一步简洁的作用,功能也强大,时间复杂度不一定减少了。
1创建一个线程并启动它
2 语法规则:
(parameter-list) -> {}
lambda表达式由原有的演变而来
------>
3 Lambda 和 this 关键字
Lambda 表达式主体内使用的 this 关键字和其所在的类实例相同。
4 企业常用
java8 stream().map().collect()用法直通车java8 stream().map().collect()用法
有一个集合:
现在想获取User的身份证号码;在后续的逻辑处理中要用;
常用的方法我们大家都知道,用for循环,
这种方法要写好几行代码,有没有简单点的,有,java8 API能一行搞定:
解释下一这行代码:
users:一个实体类的集合,类型为List
User:实体类
getIdcard:实体类中的get方法,为获取User的idcard
stream()优点
无存储。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。
为函数式编程而生。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。
惰式执行。stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行。
可消费性。stream只能被“消费”一次,一旦遍历过就会失效,就像容器的迭代器那样,想要再次遍历必须重新生成。
stream().map()方法的使用示例:
再看几个例子:数组字母小写变大写
List list= Arrays.asList(“a”, “b”, “c”, “d”);
List collect =list.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println(collect); //[A, B, C, D]
数组所有元素,按某种规律计算:
List num = Arrays.asList(1,2,3,4,5);
List collect1 = num.stream().map(n -> n * 2).collect(Collectors.toList());
System.out.println(collect1); //[2, 4, 6, 8, 10]
Java特性和Java方法命名、servlet运行过程
一、Java3大特性:继承、多态、封装
一定要说第四大特性的话为:抽象(abstract,不能被实例化,构造方法 和 static 方法不能是抽象的)
1、继承 extends
子类继承父类的方法,子类增加方法或重写父类的方法,从而产生新的方法。
一个子类只能有一个父类,Java是单继承的。
一个父类可以有多个子类,多个之类继承父类的特性。最高级的父类(超类,基类)为object。
子类不能继承父类中访问权限为 private 的成员变量和方法,也不能继承父类的构造方法。子类可以重写父类的方法,及命名与父类同名的成员变量。
2、多态
1 继承中子类的不同形态体现了多态,重载和重写都实现了多态,而继承就是子类重写。
2 接口也可以实现多态,是第二种方式。接口是多继承多实现,能够对外提供一致的服务接口,使用起来较方便或灵活。
3、封装
隐藏对象的属性和实现细节,仅对外公开访问方法。使用者不要了解实现的具体细节。只要通过对外公开的访问方法,来使用类的成员。
目的:提高安全性及编码的简化性
二、Java方法命名
1) 获取单个对象的方法用 get 做前缀。
2) 获取多个对象的方法用 list 做前缀。
3) 获取统计值的方法用 count 做前缀。
4) 插入的方法用 save/insert 做前缀。
5) 删除的方法用 remove/delete 做前缀。
6) 修改的方法用 update 做前缀。
servlet运行过程
request.getSession().setAttribute和request.getSession().getAttribute()就是分别对session对象赋值和得到对象属性的值。
108.jsp的九大内置对象,四大域对象
4、jsp的九大内置对象
request 请求对象
response 响应对象
pageContext jsp的上下文对象
session 会话对象
application ServletContext对象
config ServletConfig对象
out jsp输出流对象
page 指向当前jsp的对象
exception 异常对象
其中pageContext、request、session、application是四大域对象
什么是域对象?可以向Map一样存取数据的对象。
使用顺序:从小范围用起 pageContext–request–session–application
范围
pageContext (PageContextImpl类) 当前jsp页面内有效
request (HttpServletRequest类) 一次请求内有效
session (httpSession类) 一个会话范围内有效(打开浏览器知道关闭就是一个会话)
application (ServletContext类) 只要web工程不停,整个web工程都有效
构造方法是什么?怎么使用? 构造器是什么? 构造方法与方法的区别?
给对应对象初始化。
1、构造方法时一种特殊的方法,作用:给对应对象初始化。
特殊在哪?
1 构造函数的函数名与类名一致。2 默认构造函数没有参数,没有返回值。构造函数在函数体内也没有内容。不能声明void,访问权限可以为任意,但是一般情况下使用public方法权限,构造方法中的参数可以根据需要自行定义,参数的不同的构造方法构成重载。
public class B extends A { public B(){} //无参的公有构造方法 public B(int i){} //参数类型为int的公有构造方法 public B(int i,double j,char f){} //参数类型为int和double,char的公有构造方法 … }
2、构造方法使用
1 new一个对象,直接调用
Demo demo = new Demo();
2 用this或super关键字public Demo(){
this(13); //这里调用参数为int类型的本类的构造方法
}public Demo(){
super(1); //调用参数为int类型的父类的构造方法
}
—》this或super调用构造方法只能出现在构造方法中,而且必须出现在第一行,所以一个构造方法中第一行只能为this或super调用构造方法,两者不能同时调用构造方法出现,而且注意this或super调用构造方法时,要留构造方法出口,意思就是最后调用的构造方法中没有再调用别的构造方法!
3、构造器是什么?
构造器就是和类名相同但无返回类型的方法
—》构造方法—》构造器通常也叫构造方法、构造函数
另外不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承
所以它与方法的区别全部写在上面了。
4、构造方法与方法的区别?1 构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2 构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3 不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。