项目部署服务器记录
linux 部署项目
使用 centos 7 系统部署
nginx 部署前端安装依赖
yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-deve
安装 nginx
yum -y install n
修改nginx配置
vim /etc/nginx/nginx.conf
// 修改 nginx 用户 user root
// 选择项目地址
// location下 root :项目文件地址
// 刷新配置
nginx -s reload
安装javayum install -y java-1.8.0-openjdk*
运行jar包
java -jar ./user-center-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
#后台运行
nohup java -jar ./user-center-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod & ...
网络基础TODO 学习计算机网络
网络编程APIInetAddress 类InetAddress 类主要表示 IP 地址,两个子类:Inet4Address、Inet6Address
该类没有提供公共的构造器,采用静态方法获取实例:
public static InetAddress getLocalHost()
public static InetAddress getByName(String host)
public static InetAddress getByAddress(byte[] addr)
常用方法:
public String getHostAddress() :返回 IP 地址字符串(以文本表现形式)
public String getHostName() :获取此 IP 地址的主机名
public boolean isReachable(int timeout):测试是否可以达到该地址
代码
@Test
public void test() throws UnknownHostException {
InetAddress local ...
java File 类
java 文件类,以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等
构造器
File(String pathname):以 pathname 为路径创建 File 对象,可以是绝对路径或者相对路径,如果 pathname 是相对路径,则默认的当前路径在系统属性 user.dir 中存储
File(String parent, String chlid):以 parent 为父路径,child 为子路径创建 File 对象
File(File parent, String child):根据一个父 File 对象和子文件 路径创建 File 对象
File(URI uri):通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例
代码:
@Test
public void test1() {
// File(String pathname)
File file1 = new File("hello.txt");
File file2 = new File("D:\\J ...
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数
举例:在集合中使用泛型
@Test
public void test1(){
// <Integer> 规定 list 集合里只能放 integer 类型的元素
ArrayList<Integer> list = new ArrayList<>();
// 自动装箱 Integer类型
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
// error 类型不匹配
// list.add("aa");
// 在 map 使用
HashMap<Integer,String> map = new HashMap<>();
map.put(1,"aa");
map.put(2,"bb");
// e ...
集合框架体系
Java 集合可分为 Collection 和 Map 两大体系
Collection 接口:用于存储一个一个的数据,也称单列数据集合
List 子接口:用来存储有序的、可以重复的数据(主要用来替换数组,”动态”数组),实现类,ArrayList、LinkedList、Vector
Set 子接口:用来存储无序的、不可重复的数据(类似于高中讲的 “集合”)
实现类:HashSet、LinkedHashSet、TreeSet
Map 接口:用于存储具有映射关系 key-value 对的集合
实现类:HashMap、LinkedHashMap、TreeMap、Hashtable、 Properties
Collection 接口及方法
JDK 不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set 和 List)去实现
Collection 接口是 List 和 Set 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 集合
方法
描述
add(E obj)
添加元素对象到当前集合中
addA ...
引用数据类型是不能直接使用比较运算符来比较大小的
及到对象之间的比较问题:使用自然排序(Comparable)、定制排序(Comparator)
Comparable 自然排序
Comparable 接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的 自然排序
使用步骤:
具体的类A实现Comparable接口
重写Comparable接口中的 compareTo(Object obj) 方法,在此方法中指明比较类A的对象的大小的标准
创建类A的多个实例,进行大小的比较或排序。
举例:
// 具体的类A实现Comparable接口
public class Student implements Comparable{
private int id;
private String name;
private int age;
private int score;
public Student(){}
public Student(int id, String name,int score,int age) ...
JDK8 之前:日期时间 API
java.lang.SystemSystem 类提供的 public static long currentTimeMillis():用来返回当前时间与 1970 年 1 月 1 日 0 时 0 分 0 秒之间以毫秒为单位的时间差
java.util.Date构造器:
Date():无参构造获取本地时间
Date(long 毫秒数):通过毫秒数转换成时间对象
常用方法:
getTime(): 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象 表示的毫秒数
举例
public void DateTest(){
Date d1 = new Date();
Date d2 = new Date(1559807047979L);
long time = d1.getTime();
}
java.text.SimpleDateFormat
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类
SimpleDateFormat 允许你选择任何用户自定 ...
多线程的概念程序、进程 and 线程
程序:为了完成特定任务的一段静态代码,静态对象
进程:程序的一次执行过程,或者运行中的应用程序
线程:由进程进一步细分为线程,即程序内部执行的一条路径
一个进程同一时间若并行执行多个线程,就是支持多线程的
线程调度
分时调度:使用线程轮流使用 cpu ,并且平均分配每个线程占用 cpu 的时间
抢占式调度:让优先级高的线程以较大的概率优先使用 CPU。如果线程的优先级相同,那么会 随机选择一个(线程随机性),Java 使用的为抢占式调度
多线程程序的优点
提高应用程序的响应速度,增加图形化界面,用户体验
提高计算机系统的 cpu 利用率
改善程序结构,将复杂的进程分成多线程,独立运行
并发和并行
并行(parallel):指两个或多个事件在同一时刻发生(同时发生)。指在同一时刻, 有多条指令在多个 CPU 上同时执行。比如:多个人同时做不同的事
并发(concurrency):指两个或多个事件在同一个时间段内发生。即在一段时间 内,有多条指令在单个 CPU 上快速轮换、交替执行,使得在宏观上具有多个进程同时执行的效果
多线程的创建方式 ...