赞
踩
1、接口和抽象类的区别
抽象类(abstract)
- //abstract 抽象类:类 extends: 单继承(接口可以多继承)
- public abstract class Action {
- //约束~有人帮我们实现~
- //abstract,抽象方法,只有方法名字,没有方法的实现!
- public abstract void doSomething();
-
- //1.不能new抽象类,只能靠子类去实现它,仅作为一个约束
- //2.抽象方法只能出现在抽象类中,抽象类可以有普通方法
- //抽象的抽象:约束
- //3.抽象类有构造器,可以派生子类
- //4.抽象类的意义:约束,提高开发效率。但是类只能单继承,所以有局限 用的不多
-
- }
- //抽象类的所有方法,继承了它的子类,都必须要实现它的方法
-
- public class A extends Action{
- @Override
- public void doSomething() {
- }
- }
接口(interface)
- //interface 定义的关键字,接口都需要有实现类
- public interface UserService {
- //接口中的所有定义其实都是抽象的 public abstract
- void add(String name);
- void delete(String name);
- void update(String name);
- void query(String name);
- }
- //类 可以实现接口 implements 接口
- //实现接口的类,就需要重写接口中的方法
- public class UserServiceImpl implements UserService{
-
- @Override
- public void add(String name) {
-
- }
-
- @Override
- public void delete(String name) {
-
- }
-
- @Override
- public void update(String name) {
-
- }
-
- @Override
- public void query(String name) {
-
- }
- }
作用:
1、约束
2、定义一些不同的方法,让不同人的实现
3、public abstact
4、public static final
5、接口没有构造方法,不能被实例化
6、实现类必须要重写接口中的方法
7、实现类(implements) 可以实现多个接口
lambda表达式本质上是一段匿名内部类,也可以是一段可以传递的代码
- package com.kuang.lambda;
- //lambda表达式
- public class TestLambda1 {
- //3、静态内部类
- static class Like2 implements ILike{
- @Override
- public void lambda() {
- System.out.println("I like lambda2");
- }
- }
- public static void main(String[] args) {
- ILike like = new Like();
- like.lambda();
- like = new Like2();
- like.lambda();
-
- //4、局部内部类
- class Like3 implements ILike{
- @Override
- public void lambda() {
- System.out.println("I like lambda3");
- }
- }
- like = new Like3();
- like.lambda();
- //5.匿名内部类,没有类的名称,必须借助接口或者父类
- like = new ILike() {
- @Override
- public void lambda() {
- System.out.println("I like lambda4");
- }
- };
- like.lambda();
-
- //6.用lambda简化,接口和方法都不要了
- like = ()->{
- System.out.println("I like lambda5");
- };
- like.lambda();
-
- }
-
- }
- //1、定义一个函数式接口
- //任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口
- //接口里默认是抽象方法
- interface ILike{
- void lambda();
- }
- //2、实现类
- class Like implements ILike{
- @Override
- public void lambda() {
- System.out.println("I like lambda");
- }
- }
多个参数
- package com.kuang.lambda;
-
- public class TestLambda2 {
- public static void main(String[] args) {
- ILove love = new Love();
- love.love("bl");
-
- love = new ILove() {
- @Override
- public void love(String a) {
- System.out.println("I love you-->"+a);
- }
- };
- love.love("bdf");
- //lambda表达式
- love = (String a)->{
- System.out.println("I love you-->"+a);
- };
- love.love("yiyeri");
- //简化1.去掉参数类型
- love = (a)->{
- System.out.println("I love you-->"+a);
- };
- love.love("520");
- //简化2.简化括号
- love = a ->{
- System.out.println("I love you-->"+a);
- };
- love.love("521");
- //简化3.简化花括号
- love = a ->
- System.out.println("I love you-->"+a);
- love.love("aaaaaaa");
-
- //总结:
- /*
- 1.lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹
- 2.前提是接口为函数式接口
- 3.多个参数也可以去掉参数类型,要去掉就都去掉了,必须加上括号
- */
- }
-
- }
- interface ILove{
- void love(String a);
- }
- class Love implements ILove{
- @Override
- public void love(String a) {
- System.out.println("I love you-->"+a);
- }
- }
在jdk1.8中对hashMap等map集合的数据结构优化。
hashMap数据结构的优化
原来的hashMap
hashMap默认大小是16,一个0-15索引的数组,
3.如何往里面存储元素,
(1)首先调用元素的hashcode方法,计算出哈希码值,
(2)经过哈希算法算成数组的索引值,
哈希冲突: 存储地址发生冲突
当我们对某个元素进行哈希运算,得到一个存储地址,然后进行插入的时发现已经被其他元素占用了
指两个或两个以上的线程在执行的过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象,若无外力作用,他们都将无法推进下去。此时系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程成为死锁进程。
举例来说:有两个进程A和B,A持有资源a等待b资源,B持有资源b等待a资源,两个进程都在等待另一个资源的同时不释放资源,就形成死锁。
产生死锁的原因,主要包括:
形成死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
当一个进程获得某种不可抢占资源,提出新的资源申请,若不能满足,则释放所有资源,以后需要,再次重新申请。
1、抢占资源。从一个或多个进程中抢占足够数量的资源,分配给死锁进程,以解除死锁状态。
2、终止(撤销)进程:将一个或多个死锁进程终止(撤销),直至打破循环环路,使系统从死锁状态解脱。
两种 HTTP 请求方法:GET 和 POST
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据
SSL 的功能实现主要依赖于三类基本算法:
散列函数 Hash、对称加密和非对称加密,
其利用非对称加密实现身份认证和密钥协商,
对称加密算法采用协商的密钥对数据加密,
基于散列函数验证信息的完整性
常见的有 AES-CBC、DES、3DES、AES-GCM 等,信息的加密和解密用相同的密钥,掌握密钥才能获取信息。在对称加密中,信息安全的基础是保证密钥的安全。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。