
Java
文章平均质量分 79
Java开发
huamanggg
生活不止眼前的苟且
展开
-
[Java安全]类加载器ClassLoader
前言借用了先知社区的文章的一张图来解释这个原理负责动态加载Java类到Java虚拟机的内存空间中,用于加载系统、网络或者其他来源的类文件。Java源代码通过javac编译器编译成类文件,然后JVM来执行类文件中的字节码来执行程序。类加载器介绍类加载器大致分为两类:JVM 默认类加载器用户自定义类加载器类加载器分类引导类加载器(BootstrapClassLoader):属于jvm一部分,不继承java.lang.ClassLoader类,也没有父加载器,主要负责加载核心java库(即原创 2022-03-30 01:56:15 · 312 阅读 · 0 评论 -
[Java安全] 反射
前言准备入手学习java的安全了,感觉这也是一个大的趋势,想着尽早进入到java安全的探索中,在反序列化链的学习之前,需要先学习反射,不多说了,开干吧反射反射定义对象可以通过反射获取他的类,类可以通过反射拿到所有⽅法(包括私有)通过java语言中的反射机制可以操作字节码文件,可以读和修改字节码文件反射的基本运用1. 获取类对象a. forName()方法只需要知道类名,在加载JDBC的时候会采用实例代码public class test1 { public static voi原创 2022-03-06 22:50:43 · 6068 阅读 · 6 评论 -
[Java多线程]线程创建的三种方式,线程的互斥,线程的同步
前言多线程:指的是这个程序(一个进程)运行时产生了不止一个线程并行和并发:并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。并发往往在场景中有公用的资源,那么针对这个公用的资源往往产生瓶颈,我们会用TPS或者QPS来反应这个系统的处理能力。线程创建最基础的主要分为两种方法继承Thread类实现Runnable接口创建Thread类的子类,用这种方法生成新线程,可以按以下步骤进行:原创 2021-12-01 19:22:39 · 729 阅读 · 0 评论 -
[Java GUI]几种计算器的实现
按键为操作符import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Work2 extends JFrame implements ActionListener { private JButton bt_add,bt_sub,bt_mul,bt_div; private JTextField原创 2021-11-17 10:18:34 · 241 阅读 · 0 评论 -
[Java GUI]学习笔记
JFrame常用方法// 设置窗口的 标题void setTitle(String title)// 设置窗口的 图标void setIconImage(Image image)// 设置窗口的 宽高void setSize(int width, int height)void setSize(Dimension d)/** * 设置窗口关闭按钮点击后的默认操作, 参考值: * WindowConstants.DO_NOTHING_ON_CLOSE: 不执行任何操作。原创 2021-11-17 09:56:08 · 406 阅读 · 0 评论 -
[Java代码审计]——远程调试初探
Jar包的调试这里以冰蝎做示例把冰蝎的jar包和他必须的db数据库文件放到项目的lib目录下把jar包添加到库如下配置调试配置新建远程JVM调试JVM的命令行参数,根据JDK的版本去选择然后比如在这打一个断点然后在jar包目录下执行如下命令,后面的参数是刚刚配置调试的那个配置注意这里,suspend要改成y,不然会卡不住断点,这个参数的意思是:是否等待调试器的接入回到idea,debug就可以卡住断点了Weblogic的远程调试这里我们是以dacker来配合Idea进行代码原创 2021-09-18 00:53:53 · 543 阅读 · 0 评论 -
JavaWeb后端实现登陆案例
项目需求1.编写login.html登录页面:username & password 两个输入框2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表3.使用JdbcTemplate技术封装JDBC4.登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您5.登录失败跳转到FailServlet展示:登录失败,用户名或密码错误项目分析:开发步骤创建项目创建一个lib目录到WEB-IFN里面,导入jar包创建数据库环境创建类Use原创 2021-04-25 12:56:39 · 3217 阅读 · 2 评论 -
Javaweb学习笔记7(Request、获取请求数据、请求转发、数据共享)
Servlet的体系结构Servlet的体系结构有三层,爷-父-孙三级继承Servlet – 接口|GenericServlet – 抽象类|HttpServlet – 抽象类我们在开发的时候,写servlet实现他的方法有一大堆,但是我们实际常用到的也就是service方法,那么就想有一个办法预定义好那些不长用的方法厂商给出了这样的体系,注意这两个是类,是用extend来继承GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作原创 2021-04-24 02:31:28 · 684 阅读 · 1 评论 -
Javaweb学习笔记6(Servlet)
servlet基本介绍全程是server applet,运行在tomcat上的小程序图解:Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。将来我们自定义一个类,实现Servlet接口,复写方法。原创 2021-04-20 22:20:30 · 164 阅读 · 2 评论 -
Javaweb学习笔记5(Tomcat)
Tomcat 启动!下载:http://tomcat.apache.org/安装:解压压缩包即可。注意:安装目录建议不要有中文和空格卸载:删除目录就行了启动:bin/startup.bat ,双击运行该文件即可访问:浏览器输入:http://localhost:8080 回车访问自己,http://别人的ip:8080 访问别人启动报错:找到占用的端口号,并且找到对应的进程,杀死该进程netstat -ano:这个命令可以显示各端口有谁占用,找到pid关掉它就可以了原创 2021-04-13 23:10:30 · 113 阅读 · 1 评论 -
Javaweb学习笔记4(Template使用和实例)
TemplateSpring对JDBC做了简单封装,提供了JDBCTemplate对象简化JDBC的操作步骤导入jar包创建JdbcTemplate对象。依赖于数据源DataSourceJdbcTemplate template = new JdbcTemplate(ds);调用JdbcTemplate的方法来完成CRUD的操作update():执行DML语句。增、删、改语句,第二个参数是预处理的填充queryForMap():查询结果将结果集封装为map集合,将列名作为k原创 2021-04-13 00:34:08 · 1118 阅读 · 0 评论 -
Javaweb学习笔记3(连接池,Druid的学习,Druid工具类提取与实现)
连接池依靠javax.sql包的DataSource接口来实现方法:获得连接:getConnection()归还连接:如果是从连接池获得的连接,直接用conn.close()是归还连接,而不是之前学的关闭连接一般不是由自己实现,都是有厂商来实现,数据库连接池技术:C3P0Druid这里我就直接学更高效的Druid了Druid步骤:导入jar包 druid-1.0.9.jar定义配置文件:是properties形式的可以叫任意名称,可以放在任意目录下加载配置文件原创 2021-04-12 02:32:23 · 337 阅读 · 0 评论 -
Javaweb学习笔记2(JDBC的CRUD、工具类的提取与测试、批处理)
JDBC执行增删改查insertinsert用的执行sql语句的方法是executeUpdate(),返回影响的记录数量package com.jdbctest;import org.junit.Test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Insert { @Te原创 2021-04-10 16:34:22 · 140 阅读 · 0 评论 -
Javaweb学习笔记1(JDBC基本操作)
JDBCjdbc中文名叫java数据库连接创建项目创建项目,引入jar包我的jdk是1.8的,所以用的比较老的jar包官网下载https://downloads.mysql.com/archives/c-j/导入jar包,并构建好,怎么构建在数据库里面建立好一个库,我命名为java,建个表test加点数据进去代码实现分为四个步骤加载驱动获得连接基本操作释放资源实现的代码package com.jdbctest;import org.junit.Test;impo原创 2021-04-08 01:05:48 · 155 阅读 · 0 评论 -
JAVA学习笔记5(Scanner,String,Arrays,Math,异常)
Math类原创 2021-03-29 22:45:12 · 185 阅读 · 0 评论 -
JAVA学习笔记4(继承,super,构造器,向上向下取整,包装类)
数字处理格式化Java使用DecimalFormat类来实现数字的格式化如果数字大余0.001小于10000000,就以常规小数表示如果数字超出范围就用科学计数法import java.text.*;public class DecimalFormatSimpleDemo { // 使用实例化对象时设置格式化模式 static public void SimgleFormat(String pattern, double value) { // 实例化DecimalFormat对原创 2021-03-29 20:56:33 · 127 阅读 · 0 评论 -
JAVA学习笔记3(类,this,静态,主方法,对象)
类类的定义Java中,类是基本组成单位类由属性和行为组成利用class关键字对类进行定义public class Phone{ //成员变量 String brand; int price; //成员方法 public void call(){ System.out.println("打电话"); }}对象的创建与使用有了类就可以基于这个类来创建对象,创建方法和php的很像,使用new关键字类名 对象名 = new 类名()使用对象对象的时候分为成员变量的访问和原创 2021-03-25 16:52:32 · 145 阅读 · 0 评论 -
JAVA学习笔记2(数组,方法,重载)
数组对于数组的创建,先声明,再用new运算符进行内存分配声明有两种方法int arr[];int[] arr;new创建对象,分配内存,给改数组一个地址,地址就是arr的值数组名 = new 数据类型[元素个数]例如:arr = new int[3]当给了一个数组三个位置后,会自动填充,int类型就是0定义方法可以声明的时候去分配内存int arr[] = new int[5]或者直接赋好值int arr[] = new int[]{1,2,3,4,5}二维数组原创 2021-03-13 00:40:20 · 110 阅读 · 0 评论 -
JAVA学习笔记1(主类结构,数据类型,流程控制,字符串操作)
主类结构Java是一个与面向对象关系很强的编程语言,java的应用程序就是由若干的类组成的每个应用程序都必须包含一个main()方法,含有main方法的类称为主类示例:定义一个类叫Frist,里面有一个main方法,所以这个类被定义为主类public class Frist { public static void main(String[] args){ System.out.println("hello"); }}main方法main()方法是类体中的主方原创 2021-03-10 00:05:45 · 246 阅读 · 1 评论