TS学习
1. TS介绍1.1 TS是什么TypeScript 是 JS的超集
TypeScript = Type + JavaScript
1234//有明确类型let age1: number = 18//无明确类型let age2 = 18
1.2 TS为什么要添加类型支持
背景:JS的类型系统存在“先天缺陷”,JS代码中绝大部分错误都是类型错误(Uncaught TypeError)。
问题:增加了找Bug、改Bug的时间,严重影响开发效率。
从编程语言的动静来区分,TypeScript属于静态类型的编程语言,JS属于动态类型的编程语言。
静态类型:编译期做类型检查;
动态类型:执行期做类型检查。 代码编译和代码执行的顺序:1编译2执行。
对于JS来说:需要等到代码真正去执行的时候才能发现错误(晚)。对于TS来说:在代码编译的时候(代码执行前)就可以发现错误(早)。并且,配合VSCode等开发工具,TS可以提前到在编写代码的同时就发现代码中的错误,减少找Bug、改Bug时间。
2. TS常用类型12345678910111213141516171819202122232 ...
Less学习
Less1、CSS的缺点标记性语言,毫无逻辑,浏览器兼容问题
2、预处理语言Sass
Less
扩充了CSS,增加了变量,混合,函数等功能
Stylus
3、Less介绍Less扩充了CSS语言,增加了诸如变量、混合(mixin)、运算、函数等功能。Less既可以运行在服务器端 (Node.js和Rhino平台)也可以运行在客户端(浏览器)。
4、Less使用4.1 注释123//这样的注释不会出现在CSS文件中/* 这样的会出现在CSS文件中*/
4.2 变量123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657//使用@创造变量@color: green;@width: 100px;//选择器变量@mySelect: #warp;@{mySelect}{ }@warp: warp;.@{warp}{ }//属性变量@boderStyle: b ...
高级 - java
单元测试
针对最小的功能单元(方法),编写测试代码对其进行正确性的测试。
junit单元测试框架
可以用于对方法进行测试,它是第三方公司开源出来的。
优点
可以灵活编写代码,可以针对某个方法测试,也可以一键测试全部
会有测试报告
具体步骤
将Junit框架的jar包导入到项目中(注意:IDEA集成了Junit框架,不需要我们自己手工导入了)
为需要测试的业务类,定义对应的测试类,并为每个业务方法,编写对应的测试方法(必须:公共、无参、无返回值)
测试方法上必须声明@Test注解,然后在测试方法中,编写代码调用被测试的业务方法进行测试
开始测试:选中测试方法,右键选择“Junit运行”,如果测试通过则是绿色;如果测试失败,则是红色
断言机制
通过预测结果来检查bug
常见注解
@Test
@Before 5版本 @BeforeEach修饰实例方法,会在每个测试方法执行前执行一次
@After 5版本 @AfterEach 修饰实例方法,会在每个测试方法执行后执行一次
@BeforeClass 5版本 @BeforeAll 修饰静态方法,会在所有测试方法执行前只执行一次 ...
多线程 - java
多线程进程
正在运行的程序就是一个独立的进程
线程属于进程,一个进程中可以同时运行很多个线程
进程中的线程是并发和并行执行的
线程
线程(Thread) 是一个程序内部的一条执行流程
程序中如果只有一条执行流程,那这个程序就是单线程的程序。
生命周期
New 新建
Runnable 运行
Teminated 终止
Blocked 锁阻塞
Waiting 无限等待
Timed Waiting 计时等待 sleep 不会释放锁 wait会释放
多线程
多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)
main 方法是一个主线程
启动线程必须调用start方法而不是run方法,run方法不会被认为是一个线程。
不要把主线程任务放在启动子线程之前,主线程任务在前面的话会先执行完主线程任务。
创建线程
通过继承Thread类
优点:编写简单
缺点:不能继承其他类
1234567891011121314151617 //1、通过继承Thread类 public class MyThread extends Thread{ // ...
IO流 - java
IO流 - java字符集ASCLL 码 (美国信息交换标准代码) 最高位为0 每个字符一个字节
GBK (汉字内码扩展规范) 汉字两个字节, 英文一个字节
Unicode
UTF-32 每个字符 4字节
UTF-8 (变长字符编码)汉字3字节, 字符1字节
怎么区分用几个字节存储
3字节 1110xxxx 10xxxxxx 10xxxxxx
2字节 110xxxx 10xxxxxx
1字节 0xxxxxxx
IO流按方向分
输入流
输出流
按内容分
字节流
数据转移更好
输入 - InputStream
输出 - OutputStream
字符流
读写文本内容 更好
输入 - Reader
输出 - Writer
字节输入
字节输出
字符输入
字符输出
抽象类
InputStream
OutputStream
Reader
Writer
原始流
FileInputStream
FileOutputStream
FileReader
FileWriter
缓存流
BufferedInputStream
BufferedOutp ...
正则表达式
正则表达式用来检验数据是否合法
1、书写规则字符类(匹配单个字符)[abc] a,b 或者c
[a-zA-Z] a到z A到Z包括
[^a] 非a
[a-z&&[ ^bc ]] a到z 除了 bc
预定义字符(匹配单个字符). 任何字符
\d 一个数字[0-9]
\D 非数字[ ^0-9]
\s 一个空白字符
\S 非空白字符
\w [a-zA-Z_0-9] 字母,数字和下划线
\W 非单词字符
数量词x? 一次或零次
x* 零次或多次
x+ 一次或多次
x{n} 正好n次
x{n, } 至少n次
x{n, m} n到m次
其他常用(?i) 忽略大小写
| 或
() 分组
2、 应用案例手机|座机(1[3-9]\d{9})|(0\d{2,7}-?[1-9]\d{4,19})
邮箱\w{2,}@\w{2,20}(\.\w{2,18}){1,2}
MySQL
1、MySQLjavaEE: 企业级java开发 web
前端(页面:展示,数据!)
后台(连接点:连接数据库,链接前端)
数据库(存数据)
DB DataBase
概念 数据仓库,软件,安装在操作系统之上
作用 存储数据,管理数据
DBMS 数据库管理系统数据库的管理软件,科学有效的管理我们的数据。
数据库分类关系型数据库(RDBMS): 行列 SQL
MySQL, Oracle, Sql Server, DB2, SQLlite
通过表和表之间,行与列之间的关系进行数据存储
非关系型数据库: 键值对 NoSQL
Redis, MongDB
对象存储,通过对象的自身属性来决定
2、SQL语法
SQL通用语法
SQL语句可以单行或多行书写,以分号结尾。
SQL语句可以使用空格/缩进来增强语句的可读性。
MySOL数据库的SQL语句不区分大小写,关键字建议使用大写。
注释:单行注释:-注释内容或#注释内容(MySQL特有)多行注释:*注释内容*/
SQL分类
DDL Data definition Language 数据定义语言,用来定义数据库对象
DML Data Ma ...
Webpack学习
一、什么是Webpack一种打包工具
为什么要打包?
用户通过浏览器浏览项目,对于项目里面的每一个资源(css js html 以及其他资源)都需要发送一次http请求。
对于vue和less等不能直接被浏览器识别的文件,需要通过装载器转换成可识别文件。
打包可以通过plugin把文件压缩合并
二、基础基本配置五大核心概念
entry(入口)
指示 Webpack 从哪个文件开始打包
output(输出)
指示 Webpack 打包完的文件输出到哪里去,如何命名等
loader(加载器)
webpack 本身只能处理 js、json 等资源,其他资源需要借助 loader,Webpack 才能解析
plugins(插件)
扩展 Webpack 的功能
mode(模式)
主要由两种模式:
开发模式:development
生产模式:production
123456789101112131415161718192021222324const path = require("path");module.exports = { // ...
Webpack学习--原理
loader 原理loader – 帮助 webpack 将不同类型的文件转换为 webpack 可识别的模块。
loader执行顺序
分类
pre:前置
normal:普通,默认的
inline:内联
post:后置
执行顺序
pre > normal > inline > post
相同优先级执行顺序,从右到左,从下到上
使用loader的方式
配置方式
内联方式:在每个import中显示指定loader
inline loader
import Styles from 'style-loader!css-loader?modules!./styles.css';
含义:
使用 css-loader 和style-loader 处理css文件
!用来分隔loader
inline-loader可以通过添加不同前缀跳过其他类型loader
!跳过normal loader
import Styles from '!style-loader!css-loader?modules!./styles.css' ...
网络编程
网络编程1.1 概述 目的 - 传播交流信息,数据交换,通信
需要
1、如何准确的定位到网络上的一台主机 ip 端口 以及某个资源
2、如何传输数据
1.2 网络通信的要素如何实现网络通信
1、 通信双方地址:
ip
端口号
2、 规则: 网络通信的协议
tcp/ip
应用层 HTTP FTP SMTP DNS
传输层 TCP UDP
网络层 IP
数据链路层
1.3 IPip地址: InetAddress
唯一定位一台网络上的计算机
ip地址的分类
IPV4/IPV6
公网(互联网)- 私网(局域网)
ABCD类地址
192.168.xx.xx 内部局域网
域名:记忆IP问题
1.4 端口表示计算机上一个程序的进程
不同的进程有不同的端口号
0~65535
TCP和UDP分开
端口分类
公有端口 0~1023
http 80
https 443
FTP 21
Telent 23
程序注册端口 1024~49151
tomcat 8080
mysql 3306
Oracle 1521
动态、私有 49152 ~ 65535
1.5 ...