- 博客(41)
- 收藏
- 关注
原创 酒旅项目总结
1.架构图流程梳理1. 用户发起请求进行DNS解析,首先经过WAF 、CDN 、防火墙。1.DNS1.网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,但IP地址是一串32位的数 字,DNS可以帮助我们解析DNS就是域名系统,是用于实现域名和IP地址相互映射的一 个分布式数据库。2. WAF1.WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。2.国际上公认的一种说法是:Web应用防火墙是通过执行一系列针对HTTP/
2022-05-03 17:07:48
1910
原创 NGINX
Nginx简介Nginx 是⼀款⾼性能的 http 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊⼽尔·⻄索夫(Igor Sysoev)所开发,官⽅测试 nginx 能够⽀⽀撑 5 万并发链接,并且cpu、内存等资源消耗却⾮常低,运⾏⾮常稳定。Nginx应用场景1、http 服务器。Nginx 是⼀个 http 服务可以独⽴提供 http 服务。可以做⽹⻚静态服务器。2、虚拟主机。可以实现在⼀台服务器虚拟出多个⽹站。例如个⼈⽹站使⽤的虚拟主机。3、反向代理
2022-03-23 23:11:31
232
原创 Apache Dubbo
一、简介Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的、轻量级的开源Java RPC框架,可以和Spring框架无缝集成,2018年阿里巴巴把这个框架捐献给了apache基金会。RPC全称为remote procedure call,即远程过程调用。比如两台服务器A和B,A服务器上部署一个应用,B服务器上部署一个应用,A服务器上的应用想调用B服务器上的应用提供的方法,由于两个应用不在一个内存空间,不能直接调用,所以需要通过网络来表达调用的语义和传达调用的数据。需要
2021-12-20 14:54:46
170
原创 JDBC-多表关系之多对一
bean包Student类package bean;//多方public class Student { private int stuId; private String stuName; private int teacherId; //多对一:是在多方创建一个存储一方数据的对象 private Teacher teacher; public Teacher getTeacher() { return teacher;
2021-05-19 13:28:20
92
原创 JDBC-多表操作之一对多
bean包一方:Teacher类package bean;import java.util.List;//一方public class Teacher { private int tid; private String tname; //在一方创建存储多方数据的集合 private List<Student> studentList; public int getTid() { return tid; }
2021-05-19 00:24:13
270
1
原创 SQL注入--(错误的关键词也能执行成功) --(预处理 PreparedStatement 修正)--02 --ResultSet日常需求
/**对比statement和PreparedStatement;(1)statement属于状态通道,PreparedStatement属于预状态通道(2)预状态通道会先编译sql语句,再去执行,比statement执行效率高(3)预状态通道支持占位符?,给占位符赋值的时候,位置从1开始(4)预状态通道可以防止sql注入,原因:预状态通道在处理值的时候以字符串的方式处理*/import java.sql.*;public class Demo1 { public static
2021-05-17 22:57:24
146
原创 SQL注入--(错误的关键词也能执行成功)--01
import java.sql.*;public class Demo1 { public static void main(String[] args) { Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { //1.加载驱动 Class.forNa
2021-05-17 22:35:26
105
原创 JDBC操作步骤2 -Update(改)、delete(删除)
相比于1,删除了①ResultSet resultSet = null;②变动区域③if(resultSet !=null){ resultSet.close(); }import java.sql.*;public class Demo1 { public static void main(String[] args) { Connection connection = null; Statement statement = null;
2021-05-17 18:30:39
302
原创 JDBC操作步骤1 -查询
mysqladvanced为数据库,salary为表名import java.sql.*;public class Demo1 { public static void main(String[] args) { Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { //1.
2021-05-17 18:11:37
112
原创 XML和JSON
XML语法格式XML文档声明<?xml version="1.0" encoding="UTF-8"?>标记 ( 元素 / 标签 / 节点)XML文档,由一个个的标记组成.语法:开始标记(开放标记): <标记名称>结束标记(闭合标记): </标记名称>标记名称: 自定义名称,必须遵循以下命名规则:1.名称可以含字母、数字以及其他的字符2.名称不能以数字或者标点符号开始3.名称不能以字符 “xml”(或者 XML、Xml)开始4.名称不能包含空
2021-05-10 23:07:19
118
转载 核心类库03-多线程05-卖票-使用实现Runnable接口的方式
/***例子:创建三个窗口卖票,总票数为100张。使用实现Runnable接口的方式存在线程的安全问题,待解决*/class Window1 implements Runnable{private int ticket=100;@Overridepublic void run() { while (true){ if(ticket>0){ System.out.println(Thread.currentThread().getName(
2021-04-26 16:52:06
86
原创 核心类库03-多线程05-卖票-使用实现Thread接口的方式
/***例子:创建三个窗口卖票,总票数为100张. 使用实现Thread接口的方式存在线程的安全问题,待解决(100有三个)*/public class WindowTest {public static void main(String[] args) { Window w1 = new Window(); Window w2 = new Window(); Window w3 = new Window(); w1.setName("窗口1");
2021-04-26 16:51:13
74
原创 核心类库03-多线程05-创建多线程的方式二:实现Runnable接口
/***创建多线程的方式二:实现Runnable接口1.创建一个实现了Runnable接口的类2.实现类去实现Runnable中的抽象方法:run()3.创建实现类的对象4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象5.通过Thread类的对象调用start()比较创建线程的两种方式:开发中:优先选择:实现Runnable接口的方式原因:1.实现的方式没有类的单继承性的局限性 2.实现的方式更适合来处理多个线程有共享数据的情况联系:pu
2021-04-26 16:50:04
200
转载 核心类库03-多线程05-多线程的创建-方式一:继承于Thread类
/**多线程的创建,方式一:继承于Thread类1.创建一个继承于Thread类的子类2.重写Thread类的run() -->将此线程执行的操作声明在run()中3.创建Thread类的子类的对象4.通过此对象调用start()例子:遍历100以内的所有偶数*///1.创建一个继承于Thread类的子类class MyThread extends Thread{//2.重写Thread类的run()@Overridepublic void run(){f
2021-04-26 16:48:11
89
原创 核心类库03-多线程05-Thread
/**测试Thread中的常用方法:1.start():启动当前线程;调用当前线程的run()2.run():通常需要重写Thread雷钟德此方法,将创建的线程要执行的操作声明再次方法3.currentThread():静态方法,返回执行当前代码的线程4.getName():获取当前线程的名字5.setName():设置当前线程的名字6.yield():释放当前cpu的执行权7.join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结
2021-04-26 16:46:31
244
原创 快递e栈-集合篇
View 类import expresssystem.array.dao.ExpressDao;import java.util.Scanner;public class View { //快递菜单private Scanner sc = new Scanner(System.in);private ExpressDao expressDao = new ExpressDao();//首页//欢迎public void welcome(){ System.out.println("-
2021-04-25 00:39:51
214
原创 核心类库-IO-Serializable接口实现序列化和反序列化
Student类import java.io.Serializable;import java.util.List;public class Student implements Serializable {private String stuNum;private String stuName;private List teacherList;public Student(){}public Student(String stuNum, String stuName, List<
2021-04-25 00:36:18
132
原创 快递e栈-数组篇
import java.util.Scanner;public class express {public static void main(String[] args) { Scanner scan=new Scanner(System.in); String[] orderId=new String[3]; //快递单号 String[] comName=new String[3]; //快递名称 int[] codeGet=new int[3]; //取件码 System.out.p
2021-04-23 22:26:36
129
原创 快递e栈-面向对象篇
View板块import com.be.bean.Express;import java.util.Scanner;public class Views {private Scanner input=new Scanner(System.in);/** * 欢迎 */public void welcome(){ System.out.println("欢迎使用快递管理系统");}/** * 再见 */public void bye(){ System.out.pr
2021-04-23 22:18:20
178
原创 核心类库-集合-Collections工具类常用方法的测试
import java.util.ArrayList;import java.util.Arrays;import java.util.List;import org.junit.Test;/*reverse(List):反转 List 种元素的顺序shuffle(List):对 List 集合元素进行随机排序sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元
2021-04-22 17:27:01
209
转载 核心类库-集合-TreeMap-两种添加方式的使用
import java.util.Comparator;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;import org.junit.Test;public class TreeMapTest {//向TreeMap中添加key-value,要求key必须是由同一个类创建的对象//因为要按照key进行排序:自然排序、定制排序//自然排序@Test
2021-04-22 16:38:01
175
原创 核心类库-集合-Map接口
import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.Map;import java.util.Set;import org.junit.Test;/*一、Map的实现类的结构:|—Map:双列数据,存储key-value对的数据 —类似于高中的函数:y=f(x)|—HashMap:作为M
2021-04-22 16:36:08
69
转载 核心类库-集合-Set接口2-TreeSet
import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;import org.junit.Test;public class TreeSetTest {/* 1.向TreeSet中添加的数据,要求是相同类的对象 2.两种排序方式:自然排序(实现Comparable) 和 定制排序 3.自然排序中,比较两个对象是否相同的标准为:compareTo()返回0,不再是equals(). 4.
2021-04-21 17:23:22
75
原创 核心类库-集合-Set接口1-HashSet、LinkedHashSet
import java.util.HashSet;import java.util.Iterator;import java.util.LinkedHashSet;import java.util.Set;import org.junit.Test;import com.atbe.collection.Person;/*|—Collection接口:单列集合,用来存储一个一个的对象|—Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”|—HashSet:作为Set接口
2021-04-21 17:21:15
93
原创 核心类库-集合-Collection子接口-List接口
import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.List;import org.junit.Test;import com.atbe.collection.Person;/*|—Collection接口:单列集合,用来存储一个一个的对象 |---List接口:存储有序的、可重复的数据。 --->“动态”数组,替换原有的数组 |---
2021-04-20 18:04:12
113
原创 核心类库-集合-Collection2-Iterator
import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import org.junit.Test;/*集合元素的遍历操作,使用Iterator接口1.内部的方法:hasNext()和next()2.集合对象每次调用iterator()方法都得到一个全新的迭代器对象, 默认右边都在集合的第一个元素之前。3.内部定义了remove(),可以在遍历的时候,删除集合中的元素。此方法不
2021-04-20 16:05:16
68
原创 核心类库-集合-Collection1
import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.List;import org.junit.Test;/*集合框架|—Collection接口:单列集合,用来存储一个一个的对象|---List接口:存储有序的、可重复的数据。 -->"动态"数组|---Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”
2021-04-20 16:03:49
122
原创 面向对象-二分查找
public class binarySearch {public static void main(String[] args) { int[] nums={10,5,4,20,53,42}; //需要查找的数据 int num=20; //三个关键变量: //最小范围下标 int minIndex=0; //最大范围下标 int maxIndex=nums.length-1;; //中间数据下标 int centerIndex=(maxIndex+minIndex)/2
2021-04-20 01:14:32
104
原创 面向对象-排序并查找
/*4、排序并查找对数组{1,3,9,5,6,7,15,4,8}进行排序,然后使用二分查找 6 并输出排序后的下标。*/public class H4W10101007 {public static void main(String[] args) { int[] nums= {1,3,9,5,6,7,15,4,8}; //需要查找的数据 int num=6; int temp=nums[0]; for(int i=0;i<nums.length-1;i++) { fo
2021-04-20 01:12:48
129
原创 面向对象-两数之和
/*3、两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并输出他们的数组下标假设每种输入只会对应一个答案,不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以输出 0,1*/public class H3W10101007 {public static void main(String[] args)
2021-04-20 01:12:17
334
原创 面向对象-找出数组最值
/*2、找出数组的最值定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。输出数组的最大值、最小值。*/public class H2W10101007 {public static void main(String[] args) { Scanner scan=new Scanner(System.in); int[] nums=new int[10]; for(int i=0;i<nums.length;i++) { System.out.println("
2021-04-19 16:53:20
182
原创 面向对象-查找某个整数
/*1、查找某个整数定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。 然后将输入一个整数,查找此整数,找到输出下标, 没找到给出提示。*/public class H1W10101007 {public static void main(String[] args) { Scanner scan=new Scanner(System.in); int[] nums=new int[10]; for(int i=0;i<nums.length;i++) { S
2021-04-19 16:52:50
90
原创 面向对象-三人制找队长
/*今天同学们相约一起爬山游玩,为了更好的进行这场活动,大家准备推举一个人作为出游的临时队长。为了体现合理公平,大家提出了一个比较有趣的规则。所有人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,剩下的人继续报数,最后留下的当选为队长。请你通过编写程序,求出一组人中的队长是原来第几位同学。*/public class HW10101006 {public static void main(String[] args) { Scanner scan=
2021-04-19 16:52:15
79
原创 面向对象基础-打印水仙花数
/*5、打印三位数中的所有水仙花数所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。如: 153 是一个水仙花数,因为 153= 1³+5³+3³*/public class H5W10101005 {public static void main(String[] args) { for(int i=100;i<1000;i++) { int ge=i%10; int shi=i%100/10; int bai=i%1000/100; if(i==((ge*
2021-04-19 16:51:34
139
原创 面向对象基础-99乘法表
//打印99乘法表public class H4W10101005 {public static void main(String[] args) { for(int i=1;i<10;i++) { for(int j=1;j<=i;j++) { int sum=i*j; System.out.print(j+"*"+i+"="+sum+" "); } System.out.println(""); }}}
2021-04-19 16:51:00
192
原创 面向对象基础-图形打印
/*在控制台中,编写三个 Demo,分别输出如下图形:* ***** *** **** ****** *** ********* ** ************ * **********/public class H3W10101005 {public static void main(String[] args) { for(int i=0;i<5;i++) { for(int j=0;j&l
2021-04-19 16:50:21
135
原创 面向对象-文字替换
/*完成人工智障系统,并添加合适注释。*/public class HW10101004 {public static void main(String[] args) {Scanner scan=new Scanner(System.in);System.out.println(“请输入你的骚话”); while(true) { String words=scan.next(); System.out.println(words); words=words.replace("
2021-04-19 16:49:39
71
原创 面向对象-快递柜-基本语法
import java.util.Scanner;public class express {public static void main(String[] args) { Scanner scan=new Scanner(System.in); String[] orderId=new String[3]; //快递单号 String[] comName=new String[3]; //快递名称 int[] codeGet=new int[3]; //取件码 boolean isFlag
2021-04-19 16:48:53
116
原创 面向对象试题-增删改查:自定义一个类, 命名为 MyList
/*2、试题:自定义一个类, 命名为 MyList,类中包含属性:Object[] element; 定义如下几个方法: 1. 增加方法 add : 可以向数组属性中依次存储 Object,数 组内容存满时,需实现动态扩容(详解在下面)。 参考: Boolean add(Object obj) 2. 删除方法 remove : 可以根据数据或下标,从数组属性 中删除 Object 数据,删除后,数组后续 元素需前移。参考:void remove(Object obj) 或 void r
2021-04-19 16:47:17
702
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人