【Java高级】单元测试、注解、反射、动态代理
junit
概述
是第三方公司编写的一个用于帮助程序员测试代码的框架;
特点
可以直接运行带 @Test注解的方法;(相当于main方法的功能)
可以自动生成测试报告;
可以批量运行多个方法,且部分方法出异常不会影响其他的测试;
使用步骤
入门代码12345678910111213141516171819202122232425/* 练习junit入门 */public class MyTest { // 1: 导jar包 // 2: 编写被测试的方法 // 3: 在想测的方法上面添加固定的注解 @Test public void a(){ System.out.println("a方法执行了..."); } @Test public void b(){ System.out.println("b方法执行了..."); int i=1/0; } public void ...
【Java高级】网络编程-UDP&TCP实操
UDP(User Datagram Protocol)
UDP全称为:用户数据报协议。
特点
无需事先建立连接;
数据不安全,容易丢;
效率高;(耗费资源少)
发送的数据量有大小限制;
相关类&常用方法(※)
相关类:
DatagramSocket: 表示一个端点(套接字);如果是发送端,往往采用空参数的构造方法,而接收端必须指定固定的端口号;
DatagramPacket: 表示一个包装袋;如果是发送端,需要指定接收端的ip和端口号;如果是接收端,只需要指定保存数据的数组和可用长度即可;
常用方法:
构造方法(创建Socket对象):
Public DatagramSocket():创建客户端的Socket对象,系统会随机分配一个端口号
Public DatagramSocket(int port): 创建服务端的Socket对象,并指定端口号。
构造方法(创建DatagramPacket数据包对象):
public DatagramPacket(byte[] arr, int length, InetAddress address, int port)
创建发 ...
Kafka操作手册
Kafka基本命令Kafka是一个分布式流处理平台,提供了高吞吐量的数据传输能力。通过Kafka命令行工具,你可以轻松地与Kafka集群进行交互,包括生产、消费数据以及查看和修改偏移量。以下是一份使用指南,帮助你掌握这些基本操作。
基本命令包含创建Topic,查看所有Topic,查看Topic详情,删除Topic,模拟生产者生产数据,模拟消费者消费数据。
这也是上个博客的一种广度上的一种延伸,后续还会接着在这里补充。
【Spark笔耕不辍(三)】Kafka生产者消费者API及核心原理 | SilverSucks (weiswift.github.io)
12345678910111213141516171819202122# 创建主题:指定分区数和副本数kafka-topics.sh --create --topic bigdata01 --partitions 3 --replication-factor 2 --bootstrap-server node1:9092,node2:9092,node3:9092# 创建主题:不指定分区数和副本数,默认是1个分区,1个副本kafka ...
Nginx部署及使用
Nginx部署使用准备安装环境Linux服务器操作系统:CentOs 7.6
Nginx版本:1.12.1(Linux)
安装步骤:1、安装GCC、automake、pcre、zlib和openssl
为了编译Nginx源码,我们需要标准的GCC编译器(GNU Compiler Collection,自由的类UNIX及Mac OS X操作系统的标准编译器),另外,我们需要通过Automake工具,完成自动创建Makefile的工作,除此以外,Nginx的一些模块还需要依赖其他第三方库,通常有pcre库(支持rewrite模块)、zlib库(支持gzip模块)和openssl库(支持ssl模块)。
可以通过如下指令去查看Linux服务器上是否已经安装pcre、zlib和openssl
12345678//查看opensslrpm -qa openssl//查看zlibrpm -qa zlib//查看pcrerpm -qa pcre
如果没有安装以上三个库,鉴于以上Nginx运行的需求,我们需要执行以下代码:
1yum -y install gcc gcc-c++ automake p ...
API调试工具之-PostMan
PostMan概述PostMan是常用的http接口测试工具,无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是首选工具之一 。PostMan是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。相较于PostMan,还有一些国内的竞品软件如APIPost、APIPost7等、简单的进行接口测试其实都没有太大差别。
使用方法使用PostMan测试POST接口(不带参数)
使用PostMan测试POST接口(带参数)
注意事项
当前软件仅在测试或者少量查询中使用,如果是批量查询,请使用脚本。
当请求API存在高并发现象,可以使用多线程进行处理。
脚本调用API12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697impo ...
【Java高级】网络编程-基础知识
网络编程概述
所谓的网络编程就是利用程序,可以让数据通过网络进行交互;
网络编程三要素(ip, 端口, 协议)
IP
概述
是上网设备在网络中的唯一标识;
分类
ipv4
是早期的标识,采用4个字节表示,转成十进制数字后使用点分割,数量有限,因此目前仅用在局域网中了;
ipv6
是目前现行的标识,采用16个字节表示,转成十六进制数字后使用冒号分割,共有2的96次方的ip;
Java提供的类-InetAddress
该类的对象用于描述一个ip地址对象,可以通过对象获取上网设备的名称和字符串形式的ip地址;
常用方法
12345678910111213141516public class MyIP { public static void main(String[] args) throws Exception { // 1, 获取本机的IP对象 InetAddress host = InetAddress.getLocalHost(); // 本机IP地址 System ...
【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() ...
