【Java高级】线程池
线程池
概述
就是保存多个线程对象的池子;
作用
可以提升程序的运行性能;(重复利用线程,节约了频繁创建和销毁线程对象的时间)
可以保证服务器的压力;(当达到规定的上限时,可以拒绝服务)
线程池接口规范
ExecutorService
实现类
ThreadPoolExecutor
实现类的7个参数介绍
获取线程池的两种方式
自己直接new ThreadPoolExecutor(7个参数);// 这是推荐的方式,因为更安全,配置的更详细;
利用工具类 Executors中的静态方法 ;(不推荐,有风险)
自己创建线程池1234567891011121314151617181920/* 练习使用方式1 创建线程池对象 */public class MyPool { public static void main(String[] args) { // 1: 手动创建线程池对象 ExecutorService es = new ThreadPoolExecutor(2, ...
【Java高级】线程安全及线程通信
Thread类
补充上面多线程的方法
Thread类的构造方法
Thread类常用方法
参考代码12345678910111213141516171819202122232425262728293031323334package com.itheima.demo01_Thread;/* 练习Thread类的常用方法 */public class MyThread { public static void main(String[] args) throws InterruptedException { // 用lambda的形式提前准备一个任务对象 Runnable r = ()->{ // 获取线程的名称,必须先有线程的对象,通过线程对象,获取线程名称 // 1: 类名调用静态方法,就可以获取线程对象,利用线程对象,获取线程名称 String name = Thread.currentThread().getName(); ...
Paramiko食用方法
paramiko包含两个核心组件:SSHClient和SFTPClient
SSHClientSSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装
该类封装了传输Transport,通道Channel及SFTPClient建立的方法open_sftp,通常用于执行远程命令
这个一般不怎么使用,如果需要远程执行命令只需要ssh usr@host ‘command’
实在不行就去做一个免密登录,ssh-keygen,ssh-copy-id。
SFTPClient
SFTPClient的作用类似与Linux的sftp命令,是对SFTP客户端的封装
用以实现远程文件操作,如文件上传、下载、修改文件权限等操作
一般连接操作:
123trans = paramiko.Transport((host, 22))trans.connect(username = user, password = pwd)sftp = paramkio.SFTPClient.from_transport(trans)
防止报错连接操作
123456trans = paramiko.T ...
Java高级(全)
Thread类常用方法Thread类
补充上面多线程的方法
Thread类的构造方法
Thread类常用方法
参考代码12345678910111213141516171819202122232425262728293031323334package com.itheima.demo01_Thread;/* 练习Thread类的常用方法 */public class MyThread { public static void main(String[] args) throws InterruptedException { // 用lambda的形式提前准备一个任务对象 Runnable r = ()->{ // 获取线程的名称,必须先有线程的对象,通过线程对象,获取线程名称 // 1: 类名调用静态方法,就可以获取线程对象,利用线程对象,获取线程名称 String name = Thread.currentThread().getName() ...
【Java进阶】日志及多线程入门
日志
概述:专门用于记录程序运行的状态的技术;
常见日志框架
logback
log4j
logback的使用步骤
环境级别:
下载并复制jar包到idea;
复制配置文件到源码目录;
代码级别:
修改配置文件的内容;
获取一个日志对象;
面向对象,调用方法;
注意事项
配置文件的名称和路径必须按框架的要求写和存;(必须放在源码目录下且名称是 logback.xml)
获取日志对象的时候,注意包;
参考代码123456789101112131415161718/* logback日志入门 */public class TestLogBack { // 利用工具,获取一个日志对象 public static final Logger LOG= LoggerFactory.getLogger("TestLogBack"); public static void main(String[] args) { // 利用 log对象 调用各种级别 的日志方法,就可以输出日志的内容 ...
【Java进阶】配置文件xml及properties
特殊文件的读取properties
Properties 是代表属性的意思,在Java中常常用这种后缀类型的文件作为配置文件。
配置文件出来了,那必然是需要我们去读取的,如果用字符流读取可以但是没必要,用读取properties常用的方法往往无往而不利。
概述
定义:属于map中的一员,也是双列集合;
类似于:
作用:专门与后缀名是properties的文件相互结合,可以方便的把集合中的数据存入文件,也能把文件中的数据读到集合中;
使用步骤
利用构造方法创建对象;
利用成员方法,完成功能;
构造方法
常用方法
参考代码12345678910111213141516171819202122232425262728/* Properties 是Java中常见的配置文件,一般对于配置文件的读取都是遵循一定套路的,不会直接拿着字节流/字符流来读取 */public class myProperties { public static void main(String[] args) throws Exception { ...
【MongoDB】MongoDB基本操作
MongoDB常用操作
和所有的关系型数据库不同,MongoDB属于是文档类型的数据库,如果你看MongoDB内部数据的时候,就会发现MongoDB的数据存储结构为键值对(KV)形式。特别类似于Json,形同Python中的dict,Java中的set集合。
需要注意的是:MongoDB中的表对应的是Collection。
BasicOperation
使用场景:Linux服务器命令行
mongo -port
进入MongoDB
另一种方式进入MongoDB:
mongo -port 25000 -u root -p admin -authenticationDatabase ods_sys
使用root 密码admin 登录25000端口的mongoDB,库为ods_sys
不过这种命令有时候不太好使
show dbs;
查看MongoDB中的所有库
use ods_sys;
使用ods_sys库
show collections;
查看当前库中所有的表
db.flow_security.stats();
查看表的状态,有没有具体的字段我也不太清楚
db. ...
【Python】Python依赖安装方式整理
Python的依赖一直是一个比较棘手的问题,如果是在线的环境还好说,直接pip install 包名就OK了,但是如果在内网环境中的话,需要下包然后导进去安装。但是对于不同的包的安装方式也不相同。
pip命令相关
通过pip list 可以产看当前的环境中装了多少包,以及包的版本号,当然不一定是pip list,也有可能是pip3 list
在线安装Package
如果手里有requirements.txt文件的话
pip install -r requirements.txt
将当前环境中安装包版本信息导入到requireents.txt文件中,注意 –all 参数,加上此参数会将setuptools、urllib3包进行打包;如果不加,这两个不会打包
pip freeze --all > requirements.txt
指定版本号安装
pip install scapy==2.5.0
指定国内镜像源进行安装
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
离线安装Pack ...
【工具篇】Wireshark网络分析工具
用了很长时间的Wireshark网络流量分析工具,不敢说自己掌握的有多么深刻,但是一些常用的基本操作还是信手拈来的,时间久了之后难免会忘记,在这里就记录一下。
过滤器
没有使用过过滤器==没有使用过Wireshark(为什么两个=,众所周知,一个=是赋值^_^)。
过滤IP※
ip.src ==112.53.42.42
显示源地址为112.53.42.42的数据包列表
ip.dst==112.53.42.42
显示目标地址为112.53.42.42的数据包列表
ip.addr == 112.53.42.42
显示源IP地址或目标IP地址为112.53.42.42的数据包列表
过滤协议※
比较简单,直接在Filter框中直接输入协议名即可。
tcp,只显示TCP协议的数据包列表
http,只查看HTTP协议的数据包列表
icmp,只显示ICMP协议的数据包列表
注意:协议名称需要输入小写。
过滤端口
tcp.port ==80
显示源主机或者目的主机端口为80的数据包列表。
tcp. ...
【Java进阶】集合
单列集合顶层接口1Collection是顶层接口,里面规定的方法,所有的单列集合都可以使用;
单列集合Collection派系
单列集合是单个的元素,类似于Python中的列表。
容器中的数据都是相互独立的,互不干涉;
双列集合Map派系
双列集合可以理解为Python中的字典,是kv键值对形式。
容器中的数据以键值对的形式存在,键和值是一一对应的;
