Java基本语法

Java基本语法

基础语法特性

forEach + Lambda语法

Java参数传递:值/引用

final关键字

场景功能说明
修饰类该类不能被继承,防止被重写方法
修饰成员方法方法不能被子类重写
修饰成员变量必须静态初始化,不能被修改
修饰局部变量仅能有一次赋值,后续不能再被修改
修饰函数参数若参数为基本数据类型,该参数值不能被修改;若参数为引用类型,该参数不能指向其他实例对象,但指向的实例对象可以被修改

基本数据结构

时间戳

Collection

在这里插入图片描述

List

有序,可重复

ArrayIist

底层是数组结构,线程不安全,查询快,增删慢。

LinkedList

底层是链表结构,线程不安全,查询慢,增删快。

Vector

底层是数组结构,线程安全,效率低;

Stack
Set

无序,不可重复

SortedSet

有序;

HashSet

哈希表,存取快,线程不安全;

EnumSet

枚举类设计的集合类;

Queue

https://blog.csdn.net/oTengYue/article/details/88064009

Deque
双端队列。

Map

保存具有映射关系的数据,Map中保存两组值,一组是key值,另一组是value值;
在这里插入图片描述

Hashtable

哈希表算法。

HashMap

哈希表算法。

WeakHashMap
SortedMap

红黑树算法。

Java高阶用法

Reactor反应式编程

https://blog.csdn.net/get_set/article/details/79480172
https://blog.51cto.com/liukang/2093683

Flux

表示包含0到N个元素的异步序列;

Mono

表示包含0到1个元素的异步序列;

调度器

publishOn会影响链中的前后的操作符;
subscribeOn无论出现在什么位置,都只影响源头的执行环境。

Stream流式编程

整个流的过程当中,不会对原有流进行修改,修改的只是中间状态;
流式编程,将简单的运算过程化,并可以极容易的并发处理;
https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/index.html

流的产生

流的中间操作-延迟性

整个流的执行顺序是垂直执行的。
  • filter操作
  • map:将流中的对象转换为另一种类型,但只能将每个对象映射到另一个对象
  • flatmap:一个对象转换为多个其他对象或者不做转换;能将流的每个元素,转换为其他对象的流;实现流的嵌套
  • reduce:规约操作,可以将流的所有元素组合成一个结果
    • 第一种将流中的元素规约成流中的一个元素;
    • 第二种reduce方法接受标志值和BinaryOperator累加器;
    • 第三种,标志值,BiFunction累加器和类型的组合器函数;其中组合器函数在并行流中执行;

流的终端操作

一旦一个流执行终端操作时,该流即被关闭;一个关闭的流不可以再进行复用。如果想重复使用一个具有相同中间过程的流,可以使用Supplier进行包装。
  • collect:搜集器
    • 供应器:supplier
    • 累加器:accumulator
    • 组合器:combiner
    • 终止器:finisher

线程池

https://www.cnblogs.com/dolphin0520/p/3932921.html
https://blog.csdn.net/u011974987/article/details/51027795
http://yoting.github.io/blog/java/2016/06/09/java-thread02-future/

异常处理

reactor用法

同步互斥

https://www.cnblogs.com/dolphin0520/p/3923167.html

@PostMapping
@ResponseStatus
@RequestHeader
@RequestBody
Mono.just(...)

函数式接口

Function

只能接受一个参数,并返回值;

BiFunction

可以接受两个参数,并返回结果;

Supplier

函数式接口,并且该函数不带参数;

BinaryOperator

开发工具

Idea

编译Jar包

File->project structure->Artifacts->±>jar->from modules with dependencies->配置MainClass

Jar包运行

  • 如果java定义了jar包的main class入口:java -jar myjar.jar
  • 如果Java没有定义jar的main class入口:java -cp myjar.jar com.example.MainClass

框架

spring

对象的创建和销毁

  • @PostConstruct/@PreDestroy初始化之前调用函数

注解

RequestMapping
  • 既可以在类的级别进行注册,也可以在方法级别进行注册;

  • 在类的级别上的注解会将一个特定请求或者请求模式映射到一个控制器之上。之后你还可以另外添加方法级别的注解来进一步指定到处理方法的映射关系。

  • 一个ResquestMapping可以映射到多个URl

  • 带参数的ResuestMapping

Java Profiler工具

工具

VisualVM

内存工具

https://www.jianshu.com/p/5d854245051d

  • Aprof:githup链接
  • Jmap:https://www.jianshu.com/p/a4ad53179df3
    https://blog.csdn.net/m0_38110132/article/details/79652962
  • https://www.thinbug.com/q/35924300
  • http://blog.caoxudong.info/blog/2017/12/07/jvmti_reference#2.6.11.1

疑问

  • Lamaba表达式中使用变量必须在表达式作用域外,重新定义该变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值