0%

java基础

注解
jdk5.0开始增加了对注解的支持 就是元数据
就是代码的特殊标记,在不改变原逻辑的情况下,在原文件中嵌入一些补充信息
应用场景

  • 文档、编译、运行、配置切面 避免代码和xml配置
  • JPA、spring2.5 Hibernate3.x后基于注解(servelt3.0 @WebServelet(“/login”)避免配置web.xml spring配置事物 Junit @Test)
  • 框架=注解+反射+设计模式

@Override 重写
@Deprecated 过时
@SuppressWarnings 抑制告警

自定义注解
@interface
反射实现注解具体功能(信息处理流程)
元注解 4个 修饰注解的注解
@Retention指定生命周期 [source class runtime]
@Target 指定元素类型 无指定 所有都可以用
@Documented 被javadoc提取文档 默认不包含注解
@Inherited 被修饰的类的注解具有继承性

反射获取注解信息

JVM虚拟机

类加载

字节码执行机制

JVM内存模型

GC垃圾回收

JVM 性能监控与故障定位

JVM调优

多线程并发

并发编程基础

线程池

并发容器

原子类

JUC并发工具类

数据结构

计算机网络

SQL/数据库

操作系统

设计模式

单例
工厂

代理

策略

模版方法

观察者
适配器
责任链
建造者

应用框架

spring boot 自动配置 开箱即用
整合web
整合数据库
整合权限 SHiro
整合权限 SPring Security
整合各种中间件 Redies MQ RPC 、NIO

    缓存 redis 5大数据类型
    管道
    持久化
    集群

    消息队列: RocketMQ RabbitMQ KAFka

    RPC框架: Dubbo gRPC Thrift SpringCLOud Netty

    数据库框架

企业级开源项目推荐 github

  • halo [java博客系统]
  • hutool [java工具集]
  • piggymertics [springboot+springcloud+docker落地CICD]
  • hanLP [自然语言处理java实现]
  • Springboot in action [codesheep]

初入文园

南浔文园 还是第一次知道有这么个现代园林,借着南浔保障工作的空闲便来游玩
初入文园

姚珠珠舞蹈艺术馆

刚进来,就参观了这个舞蹈艺术馆,新中国第一代舞蹈艺术家和我同是双林人,便觉得双林出来的名人还是挺多的
姚珠珠舞蹈艺术馆
文园风景1
文园风景2

文昌阁

文园中心是文昌阁,始建于明代嘉靖年间,由南浔礼部尚书董份所建。
文昌阁

风景人文

小时候玩的墩子
水中的鸭子
鸭子戏水
天安门城楼
文昌阁远景

徐迟纪念馆

文园最有名的名人之一,代表作《哥德巴赫猜想》使得陈景润几乎家喻户晓
徐迟纪念馆

站在2022开年,总要立一些我们所达不到的flag,也算上定下一阶段的目标:

  • 深度参与一个开源项目
  • 深入学习golang语言细节
  • 准备一场面试
  • 早睡早起
  • 减肥:体重减至120kg
  • 读书:搭建java web框架
  • 推进一些具体的项目
  • 学习美股期权知识
  • 系统学习区块链技术并开发

question 2095

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution {
public ListNode deleteMiddle(ListNode head) {
int len=getLen(head);
if(len==0) return null;
float half=len/2.0f;
if((len&1)==1){
deleteNode(head,(int)Math.ceil(half));

}else{
deleteNode(head,(int)half);
}
return head;

}
public int getLen(ListNode head) {
ListNode temp=head;
int i=0;
while(temp.next!=null){
temp=temp.next;
i++;
}
return i;
}
public void deleteNode(ListNode head,int n) {
ListNode temp=head;
int i=0;
while(temp.next!=null){
if(i==(n-1))break;
temp=temp.next;
i++;
}
temp.next=temp.next.next;
}
}

question 143

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Solution {
public void reorderList(ListNode head) {
ListNode lastptr;
ListNode nextptr;
ListNode firstptr=head;
ListNode targetptr=firstptr;

if(!(head.next==null || head.next.next ==null)){
lastptr=getLast(firstptr.next);
while(targetptr.next!=null){
nextptr=targetptr.next;
targetptr.next=lastptr;
lastptr.next=nextptr;
targetptr=nextptr;
lastptr=getLast(targetptr);
}
if(targetptr !=lastptr)
targetptr.next=lastptr;
}
}
public ListNode getLast(ListNode first) {
ListNode last=first.next;
ListNode temp=first;
while(last !=null && last.next!=null){
if (temp ==null)
break;
last=last.next;
temp=temp.next;
}
temp.next=null;
return last;
}
}