本篇将详细介绍如何使用idea启动tomcat项目,希望对你的学习有帮助。
1.JDK:Java Development Kit 是Java的标准开发工具包 。它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行环境JRE,以及常用的Java基础类库等,是整个JAVA的核心。
2.JRE:Java runtime environment 是运行Java语言编写程序,不可缺少的运行环境,用于解释执行Java的字节码文件。JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。
3.Java中负责解释执行字节码文件的是JVM虚拟机,即JVM(Java Virtual Machine)。JVM是可运行Java字节码文件的虚拟计算机。
4.JDK 包含JRE,JRE包含JVM。
5.康威定律
第一定律:Communication dictates design(组织沟通方式会通过系统设计表达出来)
第二定律:There is never enough time to do something right, but there is always enough time to do it over(时间再多一件事情也不可能做的完美,但总有时间做完一件事情)
第三定律:There is a homomorphism from the linear graph of a system to the linear graph of its design organization(线型系统和线型组织架构间有潜在的异质同态特性)
第四定律: The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems(大的系统组织总是比小系统更倾向于分解)
6.leetcode 52. N皇后 II
n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。
给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。
输入:n = 4
输出:2
解释:4 皇后问题存在两个不同的解法。
解题思路:创建3个集合col,dia1,dia2分别表示在列和两条对角线上的皇后位置,左上到右下的对角线横纵坐标之和相等,左下到右上的对角线横纵坐标之差相同,遍历整个棋盘,如果三个集合都没有重复的,找到了一种解,count加1,直到遍历完第一行对应的所有情况为止。
class Solution {
int count;
public int totalNQueens(int n) {
HashSet<Integer> col = new HashSet<Integer>();
HashSet<Integer> dia1 = new HashSet<Integer>();
HashSet<Integer> dia2 = new HashSet<Integer>();
return backT(n, 0, col, dia1, dia2);
}
public int backT(int n, int row, HashSet<Integer> col, HashSet<Integer> dia1, HashSet<Integer> dia2){
if(row == n){
return 1;
}
int count = 0;
for(int i=0; i<n; i++){
if(col.contains(i) || dia1.contains(row-i) || dia2.contains(row+i)){
continue;
}
col.add(i);
dia1.add(row-i);
dia2.add(row+i);
count += backT(n, row+1, col, dia1, dia2);
col.remove(i);
dia1.remove(row-i);
dia2.remove(row+i);
}
return count;
}
}
7.tomcat在终端正常启动,在IDEA里启动失败,原因:dk 版本与 tomcat 版本不匹配。
tomcat版本为:7.0.92,那么需要的jdk版本为1.7;
tomcat版本为:9.0,那么需要的jdk版本为1.8+
8.启动tomcat时打开浏览器报错404
检查配置里的Project Structure,配置Facets的路径为webapp的路径
将生成的war包添加到tomcat之后,重新启动即可正常显示