JUC并发编程
JUC并发编程
java.util.concurrent
线程和进程
java默认有 2 个线程 :main、GC
java 不可以 开启线程
操作本地方法,底层的C++,Java无法直接操l作硬件,在虚拟机上运行
并发、并行
并发:(多线程操作同一资源) – 充分利用CPU资源
并行:(多线程同时跑 – 线程池 )
//核心数Runtime.getRuntime().availableProcessors()
线程状态 Thread.State
public enum State { //新生 NEW, //运行 RUNNABLE, //阻塞 BLOCKED, //等待 WAITING, //超时等待 TIMED_WAITING, //终止 TERMINATED;}
wait / sleep 区别
1、来自不同的类
wait => Object
...
网络编程
网络编程
三要素
IP:设备在网络中的地址,是唯一的标识
端口号:应用程序在设备中唯一的标识。
协议:数据在网络中传输的规则 常见的协议有UDP、TCP、http、https、ftp
IP
IPv4:2^32
IPv6:2^128
回环地址:127.0.0.1 == 》 本机
端口网络的通信,本质上是两个应用程序的通信。如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的应用程序了。也就是应用程序的标识
协议计算机网络中,连接和通信的规则被称为网络通信协议
InetAddress
方法
描述
static InetAddress getByName(String hast)
确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址
String getHostName()
获取此iP地址的主机名
String getHostAddress()
返回文本显示中的IP地址字符串
//IP对象--主机名/host -- LAPT ...
Java注解
Annotaton
常见注解:
@deprecated :过时
内置注解
@Override – 重写
@SuppressWarnings(“all”) – 抑制警告
元注解
@Target [*]
描述注解的使用范围(即:被描述的注解可以用在什么地方)
value 可为数组
ElementType.
METHOD:只能在方法上
TYPE:可放在类上
//表示注解可以用在哪些地方@Target(value = {ElementType.METHOD,ElementType.TYPE})
@MyAnnotation// -- TYPEpublic class Test02 { @MyAnnotation// -- METHOD public void test(){ }}//定义一个注解@Target(value = {ElementType.METHOD,ElementType.TYPE})@interface MyAnnotation ...
Java反射
反射机制 – Reflection
Reflection API
Class
通过反射获取类的Class对象
Class c1 = Class.forName("com.chen.User");
一个类在内存中只有一个Class对象
一个类被加载后,类的整个结构都会被封装在Class对象中
获取Class类实例public class reflection02 { public static void main(String[] args) throws ClassNotFoundException { Person person = new Student(); }}class Person{}class Student extends Person{}class Teacher extends Person{}
.class属性
Class c = Student.class;
Class对象
C ...
Java代理
代理模式
AOP的实现机制利用代理实现业务拓展
代码:Spring-08-demo2-demo4
静态代理角色分析:
抽象角色:一般使用接口或者抽象类来解决
真实角色:被代理的角色
代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操纵
客户:访问代理对象的人
代理步骤:
1.接口
//租房public interface Rent { public void rent();}//2public interface UserService { public void add(); public void delete(); public void update(); public void query();}
2.真实角色
//房东public class Host implements Rent{ @Override public void rent() { System.out.println("房东要出租"); ...
Blog
安装#安装clinpm install hexo-cli -g#博客文件夹hexo init blogcd blognpm installhexo server
部署到gitee#1.读取本地SSHcd ~/.ssh#2.仓库的SSH地址git config --global user.name "HchenP"git config --global user.email "1107383160@qq.com"#3.创建SSH Keyssh-keygen -t rsa -C "1107383160@qq.com"#覆盖--y#4.获取SSH公钥cat ~/.ssh/id_rsa.pub#5.gitee绑定公钥#6.测速连接ssh -T git@gitee.com#7.安装 hexo-deployer-gitnpm install hexo-deployer-git --save#8.blog配置文件_config.ymldeploy: type: 'git' repository: SSH地址git ...
Java线程
线程实现【重点】
线程名字
//主线程定义线程名字并启动new Thread(testThread5,"销售A").start(); //线程内获取当前线程名字Thread.currentThread().getName()
Thread
//创建线程的方式一:继承Thread类,重写run()方法,调用start开启线程public class TestThread1 extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i < 200; i++) { System.out.println("我在看代码---" + i); } } //main线程,主线程 public static void main(String[] args) { ...
阿里服务器&图床
宝塔Linux面板
#查看面板地址/etc/init.d/bt default
Java后端
总规划
基础
JavaWeb
SSM:Spring+Mybatis+SpringMVC
Vue
SpringBoot
SpringCloud
Linux
微服务
Vue-组件化编程
文档
Mdn Web 文档
Vue2文档
md教程文档
库(npm)
Vue组件化编程开发常用//delete - askconfirm//提示框alert//当前实例event.target.value/checked//值$event//遍历 this.list.forEach((c)=>{ if(c.name)})//ES6 -- 条件统计-- reduce// 统计初始值为0,长度为n则被调用几次,pre:上一次值,current:当前值// 继续调用,则pre为上一次reduce的return值return this.todos.reduce((pre,current)=>{ return pre + (current.done? 1 : 0) },0) //实例销毁this.$destroy()//声明原生dom事件@click.native //数据占位--不使用demmo('_',b){} //.trim 去除头尾空白符 //函数chen ...