根据树的前序和后序表达式构造唯一树

原题是“根据树的前序和后序表达式求中序表达式”,构造出了树求中序表达式还是问题吗?

构造树是需要一定技巧的,需要不断的递归分析。将大规模分为小规模,将每个小规模再细分,直到不可再分,树也就构建好了。就跟 归并排序 一样

前序和中序分别是:

pre: A B D E G C F

on: D B G E A C F

树的三种遍历方式

源码角度分析 CharacterEncodingFilter 解决 Post 请求中文乱码问题

Post 乱码

Spring MVC 提供 CharacterEncodingFilter 拦截请求处理编码格式问题

数据库常用事务传播行为与隔离级别

事务传播行为

当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新的事务,并在自己的事务中运行。

事务传播行为由事务传播属性指定,以下是 Spring 支持的 7 种传播行为:

传播属性 描述
REQUIRED* 如果由事务在运行,当前的方法就在这个事务内运行。否则,就开启一个新的事务,并在自己的事务中运行。
REQUIRES_NEW* 当前方法必须启动新事务,并在自己的事务中运行。如果有事务正在运行,将该事务挂起。
SUPPORTS 如果有事务在运行,当前的方法就在这个事务中运行。否则它可以不运行在事务中。(有事务环境可以运行在事务,没有也行)
NOT_SUPPORT 当前的方法不应该运行在事务中,如果有运行的事务,将它挂起。
MANDATORY 当前方法必须运行在事务内部,如果没有正在运行的事务,就抛出异常。
NERVER 当前的方法不应该运行在事务中,如果有运行的事务,就抛出异常。
NESTED 如果有事务在运行,当前的方法就应该在这个事务的嵌套事务中运行。否则,就开启一个新的事务,并在它自己的事务内运行。

成员变量与局部变量

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
public class Demo1 {
static int s;
int i;
int j;
{
int i = 1;
i++;
j++;
s++;
}
public void test(int j) {
j++;
i++;
s++;
}
public static void main(String[] args) {
Demo1 obj1 = new Demo1();
Demo1 obj2 = new Demo1();
obj1.test(10);
obj1.test(20);
obj2.test(30);
System.out.println(obj1.i + "," + obj1.j + "," + obj1.s);
System.out.println(obj2.i + "," + obj2.j + "," + obj2.s);
}
}

方法的参数传递机制

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
public class Demo1 {
public static void main(String[] args) {
int i = 1;
String str = "hello";
Integer num = 200;
int[] arr = {1, 2, 3, 4, 5};
MyData my = new MyData();

change(i, str, num, arr, my);

System.out.println("i = " + i);
System.out.println("str = " + str);
System.out.println("num = " + num);
System.out.println("arr = " + Arrays.toString(arr));
System.out.println("my.a = " + my.a);
}

public static void change(int j, String s, Integer n, int[] a, MyData m) {
j += 1;
s += "world";
n += 1;
a[0] += 1;
m.a += 1;
}
}

class MyData {
int a = 10;
}

类初始化和实例初始化

用例代码

运行结果:

(5)(1)(10)(6)(9)(3)(2)(9)(8)(7)
(9)(3)(2)(9)(8)(7)

以上代码考察的知识点有三个:

  • 类的初始化过程

  • 实例初始化过程

  • 方法的重写

单例设计模式

单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。
例如:代表JVM运行环境的Runtime类

要点:

  1. 某个类只能有一个实例;

    • 构造器私有化
  2. 是它必须自行创建这个实例;

    • 含有一个该类的静态变量来保存这个唯一的实例
  3. 是它必须自行向整个系统提供这个实例;

    • 对外提供获取该实例对象的方式:(1)直接暴露(2)用静态变量的get方法获取

自增变量

先看一段代码:

1
2
3
4
5
6
7
8
9
10
11
public class Demo1 {
public static void main(String[] args) {
int i = 1; // i = 1
i = i++; // i = 1
int j = i++; // j = 1
int k = i + ++i * i++; // k = 11
System.out.println("i = " + i);
System.out.println("j = " + j);
System.out.println("k = " + k);
}
}

基于 Spring Boot 技术栈构建企业级博客系统的开发记录

博客首页

基于 Spring Boot 技术栈构建企业级博客系统的开发记录
- 该项目构建基于 Gradle,目的在于通过博客系统的开发了解企业级开发的完整流程,学习掌握 Spring Boot 及其周边前沿技术。
- preview:http://blog.yuzh.xyz

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×