![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
学习Java的笔记
HF_WD
如果博客有不理解的,可以私信解答
展开
-
SpringBoot +Vue CLI案例之安装Vue CLI
SpringBoot +Vue CLI案例之安装Vue CLI原创 2021-07-08 16:37:19 · 2223 阅读 · 0 评论 -
Netty入门案例————TCP消息粘包的处理
建立Maven项目添加Netty依赖原创 2021-07-02 15:53:23 · 4888 阅读 · 0 评论 -
Netty入门案例————消息服务器
建立Maven项目添加Netty依赖原创 2021-07-02 15:52:00 · 4952 阅读 · 0 评论 -
Netty入门案例————指令上传、下载服务器
建立Maven项目添加Netty依赖原创 2021-07-02 15:49:54 · 5010 阅读 · 0 评论 -
Netty入门案例————简单的HTTP服务器
建立Maven项目添加Netty依赖原创 2021-07-02 15:47:53 · 4973 阅读 · 0 评论 -
kali下一键破解wifi密码
root@kali# wifite然后就自动扫描wifi信号了,你可以随时根据需要按下ctrl+c停止。按下ctrl+c停止,选择all破解全部的wifi密码,也可以选择单个序号进行破解,输入你要破解的WiFi序号aircrack-ng -w rockyou.txt /root/hs/360_B0-D5-9D-C6-65-EA.caprockyou.txt :字典( kali2018自带的默认超级字典,常用的弱口令大全 )使用字典前请解压:gzip -d /usr/share/w原创 2021-06-22 20:37:28 · 7120 阅读 · 0 评论 -
基于BIO实现简易版本的消息队列(MQ)
1原创 2021-06-22 19:09:15 · 5442 阅读 · 1 评论 -
入门案例_Spring Boot+Spring Security+JWT
基于Spring Boot+Spring Security+JWT实现的Token项目地址:https://gitee.com/struggleHS/introduction-case_2021042501.git项目目录application.properties# 应用名称spring.application.name=2021042501# 应用服务 WEB 访问端口server.port=8080# Jwt配置# 加密密钥jwt.secret=secret# 有效期原创 2021-04-28 01:41:46 · 5710 阅读 · 0 评论 -
计算100以内之和
第一种解法 public static void main(String[] args) { int sum = 0; for (int i = 0; i <= 100; i++) { sum += i; } System.out.println(sum); }第二种解法 public static void main(String[] args) { int n = 1原创 2021-04-23 22:54:59 · 3342 阅读 · 0 评论 -
自定义Mybatis
前期准备涉及到的设计思想如下:这里是引用涉及到的技术如下:XML解析技术、工厂模式、代理模式、构建者模式涉及到的依赖如下:dom4j 负责解析XMLmysql-connector-java 数据库连接驱动jaxen dom4j 的依赖包设计到的代码文件如下:创建一个普通的Maven工程工程信息如下:(自定义)引入相关坐标<dependencies><!-- 解析 xml 的 dom4j --> <dependency>原创 2021-01-28 13:20:01 · 5684 阅读 · 1 评论 -
分享一个Maven依赖查询网址
网址如下:https://mvnrepository.com/原创 2021-01-22 14:58:51 · 5937 阅读 · 0 评论 -
Java操作MySQL数据库——使用数据库连接池C3P0查询数据
数据库连接池的概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。步骤:1. 需要的依赖,导入jar包c3p0-0.9.5.2.jarmchange-commons-java-0.2.12.jarmysql-connector-java-5.1.47.jar2.在类路径下建立c3p0-config.xml它是数据库连接池的配置文件,内容如下原创 2021-01-21 10:33:14 · 6293 阅读 · 0 评论 -
Java操作MySQL数据库——删除表中数据
Java操作MySQL数据库——连接数据库1. 在数据库中建立表CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci .原创 2021-01-21 08:52:45 · 9062 阅读 · 0 评论 -
Java操作MySQL数据库——修改表中数据
Java操作MySQL数据库——连接数据库1. 在数据库中建立表CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci .原创 2021-01-21 08:50:07 · 2496 阅读 · 1 评论 -
Java操作MySQL数据库——插入表中数据
Java操作MySQL数据库——连接数据库1. 在数据库中建立表CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci .原创 2021-01-21 08:35:02 · 1460 阅读 · 1 评论 -
Java操作MySQL数据库——查询表中数据
Java操作MySQL数据库——连接数据库1. 在数据库中建立表CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci .原创 2021-01-20 22:00:16 · 2246 阅读 · 0 评论 -
Java操作MySQL数据库——连接数据库
1. 添加mysql-connector-java-5.1.47.jar驱动到项目中下载链接2. 建立数据库建议使用图形化工具建立数据库,编码采用UTF-8,本例子中数据库名为blog3. 编写代码public class Main { //数据库连接 private static Connection connection; //连接数据库的URL private static String url = "jdbc:mysql:///blog?useSSL原创 2021-01-20 21:53:09 · 6200 阅读 · 0 评论 -
JavaIO操作——输入输出流练习 复制文件
原理:从已有文件中读取字节,将该字节写出到另一个文件中代码如下:public class Main { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("a.flac"); FileOutputStream fos = new FileOutputStream("b.flac"); byte.原创 2021-01-20 12:06:05 · 5741 阅读 · 0 评论 -
JavaIO操作——字节输入流【InputStream】
java.io.InputStream抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。public void close() :关闭此输入流并释放与此流相关联的任何系统资源。public abstract int read(): 从输入流读取数据的下一个字节。public int read(byte[] b): 从输入流中读取一些字节数,并将它们存储到字节数组 b中 。File注意:close方法,当完成流的操作时,必须调用此方法,释放系统原创 2021-01-20 11:57:20 · 5814 阅读 · 0 评论 -
JavaIO操作——字节输出流【OutputStream】
java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。public void close() :关闭此输出流并释放与此流相关联的任何系统资源。public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。public void write(byte[] b, int off,原创 2021-01-20 11:53:39 · 5952 阅读 · 0 评论 -
Java文件操作——简单文件搜索优化版本Lambda优化
设计文件搜索程序的思路:接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。accept方法,参数为File,表示当前File下所有的子文件和子目录。保留住则返回true,过滤掉则返回false。保留规则:要么是.java文件。要么是目录,用于继续遍历。通过过滤器的作用,listFiles(FileFilter)返回的数组元素中,子文件对象都是符合条件的,可以直接打印。public class Main { public static void原创 2021-01-19 15:57:21 · 5813 阅读 · 1 评论 -
Exception in thread “main“ java.lang.StackOverflowError
Exception in thread “main” java.lang.StackOverflowError栈溢出,简单说就是内存泄漏了原创 2021-01-19 15:53:37 · 1543 阅读 · 0 评论 -
Java文件操作——简单文件搜索优化版本
设计文件搜索程序的思路:接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。accept方法,参数为File,表示当前File下所有的子文件和子目录。保留住则返回true,过滤掉则返回false。保留规则:要么是.java文件。要么是目录,用于继续遍历。通过过滤器的作用,listFiles(FileFilter)返回的数组元素中,子文件对象都是符合条件的,可以直接打印。public class Main { private static int原创 2021-01-19 15:50:46 · 5593 阅读 · 0 评论 -
Java文件操作——简单文件搜索
设计文件搜索程序的思路:目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。代码存在搜索层级过多,就会出现Exception in thread “main” java.lang.StackOverflowError(栈溢出,简单说就是内存泄漏了)public class Main { public static void main(String[] args) { Scanner scanner = n原创 2021-01-19 15:38:23 · 5957 阅读 · 0 评论 -
Java多线程——Java线程池的简单使用
1.创建一个实现接口的类,里面是模拟的业务public class MyRunnable implements Runnable { @Override public void run() { System.out.println("我要一个教练"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStac原创 2021-01-17 23:39:41 · 5729 阅读 · 0 评论 -
Java线程——生产者与消费者问题
生产者与消费者问题等待唤醒机制其实就是经典的“生产者与消费者”的问题。该模式在现实生活中很常见,在项目开发中也广泛应用,它是线程间通信的经典应用。 生产者是一堆线程,消费者是另一堆线程,内存缓冲区可以使用 List 集合存储数据。该模式 的关键之处是如何处理多线程之间的协调通信,内存缓冲区为空的时候,消费者必须等待, 而内存缓冲区满的时候,生产者必须等待,其他时候可以是个动态平衡。 下面的案例模拟实现农夫采摘水果放到筐里,小孩从筐里拿水果吃,农夫是一个线程, 小孩是一个线程,水果筐放满了,农夫停;水果筐原创 2021-01-17 23:11:14 · 5808 阅读 · 0 评论 -
Exception in thread “main“ java.lang.IllegalMonitorStateException
报错原因:如果在非同步控制方法里调用以下代码就会报这个错误原创 2021-01-17 22:20:12 · 6521 阅读 · 0 评论 -
Java多线程——交替输出
设置两个线程交替输出"1 2 1 2 1 2…"1. 定义一个全局锁对象为了保证两个线程使用的一定是同一个锁,我们创建一个对象作为静态属性放到一个类中, 这个对象就用来充当锁2. 定义一个线程输出1,另外一个线程输出2该线程输出十次 1,使用 MyLock.o 作为锁,每输出一个 1 就唤醒另一个线程,然后自己休眠并释放锁。public class ThreadForNum1 extends Thread { @Override public void run() {原创 2021-01-17 22:12:58 · 7863 阅读 · 5 评论 -
使用Lambda标准格式(无参无返回)
创建内含唯一的抽象方法makeFood,且无参数、无返回值public interface Cook { /** * Lambda表达式 */ void makeFood();}在下面的代码中,使用Lambda的标准格式调用invokeCook方法,打印输出“吃饭啦!”字样:public class Demo05InvokeCook { public static void main(String[] args) { invokeCook原创 2021-01-17 17:59:12 · 5831 阅读 · 1 评论 -
使用Lambda标准格式(有参有返回)
给定一个计算器Calculator接口,内含抽象方法calc可以将两个int数字相加得到和值:public interface Calculator { /** * 定义计算方法,传入两个参数 * * @param a 第一个参数 * @param b 第二个参数 * @return */ int calc(int a, int b);}在下面的代码中,使用传统的标准格式调用invokeCalc方法,完成10和20的相加计算原创 2021-01-17 17:29:04 · 492 阅读 · 0 评论 -
使用Lambda排序
当需要对一个对象数组进行排序时,Arrays.sort方法需要一个Comparator接口实例来指定排序的规则。假设有一个Person类,含有String name和int age两个成员变量:public class Person { private String name; private int age; public String getName() { return name; } public void setName(String原创 2021-01-17 17:12:59 · 7141 阅读 · 1 评论 -
List、Set、Map集合使用的区别
示例:建立学生类Studentpublic class Student { public String id;//学号 public String username;//姓名 public int grade;//成绩}List 集合关注的是索引,其元素是顺序存放的,例如一个班的学生成绩,成绩可以重复,就可以使用List集合存放//建立Integer集合List...原创 2021-01-17 13:42:33 · 5451 阅读 · 0 评论 -
Java入门开发环境配置
Java入门开发环境配置文章目录Java入门开发环境配置教程环境:jdk1.8+idea2019.3.1+WIN7JDK下载配置环境变量安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置";选择"高级"选项卡,点击"环境变量";然后就会出现如下图所示的画面:在 "系统变量" 中设置 2 项属性,JAVA_HOME、PATH,若已存在则点击"编辑",不存在则点击"新建"。变量的key和...原创 2020-03-14 22:32:22 · 5952 阅读 · 0 评论