stream java8 java api
java基础漏洞学习----整数溢出漏洞+硬编码漏洞+不安全的随机数生成器
java基础漏洞学习 整数溢出漏洞+硬编码漏洞+不安全的随机数生成器 整数溢出漏洞 public class NumberLearning { public static void main(String[] args){ System.out.println(Integer.MAX_VALUE+1 ......
Java基础语法
一、注释: 1、什么是注释: 注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便于理解程序。 2、注释有哪些: a: 单行注释:// 注释内容只可写一行 (快捷键 : ctrl+/ ) b:多行注释 : /**/ /* 注释内容1 注释内容2 */ (快捷键 :选中代码 ctrl+ ......
Java面试题小练(一)
java面向对象的三大特征 封装,继承,多态 封装说明一个类行为和属性与其他类的关系,低耦合,高内聚;继承是父类和子类的关系,多态说的是类与类的关系 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。外界对他的内部细节是隐藏的,暴露在外界的只是它的访问方法。属性 ......
JAVA培训
类 类名 对象名=new 类名(); 面向对象的三种特性 * 封装 原理:利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供 ......
java基础漏洞学习----SSRF漏洞
java基础漏洞学习 SSRF漏洞 JAVA的SSRF常见利用协议 仅支持sun.net.www.protocol下所有的协议:http,https,file,ftp,mailto,jar及netdoc 传入的URL必须和重定向后的URL协议一致,JAVA中的SSRF不能和PHP中一样使用gothe ......
JAVA 多版本切换失效
更改Path 环境变量中的优先级 正确的优先级: 2.重启cmd,查看版本 参考: https://blog.csdn.net/weixin_44248000/article/details/130345724 ......
java学习-API
API java中的API: 就是jdk中提供的各种功能的java类,这些类将底层的实现封装了起来,使用的时候直接调用即可 类的例子 键盘录入:Scanner类 next(): 遇到了空格就不会继续录入数据 nextLine():可以将数据完整的接受过来,结束的标志就是回车换行符号 例子 packa ......
java——redis随笔——实战——优惠券秒杀——分布式锁——基于redisson
Redisson入门 导入依赖 XML 12345 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.13.6</version></dependency> 配置Redi ......
Java 静态代码块、代码块、构造方法和多态继承的代码执行顺序
测试代码 import lombok.Getter; public class ExecutionOrder { { System.out.println("ExecutionOrder code 0"); } static { System.out.println("ExecutionOrder ......
Java 基础篇day02
数据在计算机底层都是采用二进制进行储存 二进制,使用0和1,按照逢二进一的规则来表示数据 列如:6=110 2=10等 计算机中表示数据的单元:字节(byte,简称B,是使用8个二进制位组成的); 字节中的每个二进制位就称为位(bit,简称b),1B=8b; 那么其他数据形式是如何存储的呢? 中文文 ......
[Java]Java初学之多线程05--Lock锁
Intro 除了synchronized关键字,从JDK5.0开始,Java提供了更强大的线程同步机制--通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。 本文简单讲一下Lock锁的概念以及简单应用。 正文 其实理解了synchronized关键字后,Lock锁的理解就会变得简单起来。 ......
java 数组浅拷贝与深拷贝
public class demo { public void func(int[] nums) { int[] tempNums = new int[]{1, 1, 1, 1, 1, 1}; // 浅拷贝 // nums = tempNums; // 深拷贝 for(int j = 0; j < ......
Java 基础篇day01
使用你正在使用的语言输出HelloWord! 这是振奋人心的一节课,你的码农人生从此处开始。 这里是一切的开始,少年。 Java是一门高级编程语言,电脑无法直接识别,需要先将java文件编译成class字节码文件,电脑才可以识别。(使用javac编译命令,java运行) 我们可以用现在市场上的主流J ......
[Java]Java初学之多线程04--死锁
Intro 继上篇《03--同步与锁》,这篇文章着重讲讲“锁”,更具体来说,讲讲“死锁” 最近天气变冷了。。。真的冷❄ 记得多穿衣服 正文 死锁 死锁是指两个或多个线程都在等待对方释放资源,最后都停止执行的情形。 举个例子来说明会更清晰:我们两个都是宝可梦世界的训练家,我有暴飞龙,你有班基拉斯,我们 ......
详述Java内存屏障,透彻理解volatile
一般来说内存屏障分为两层:编译器屏障和CPU屏障,前者只在编译期生效,目的是防止编译器生成乱序的内存访问指令;后者通过插入或修改特定的CPU指令,在运行时防止内存访问指令乱序执行。 下面简单说一下这两种屏障。 1、编译器屏障 编译器屏障如下: asm volatile("": : :"memory" ......
Java List 添加元素要用拷贝
学Java遇到一个坑,那就是往ArrayList(别的collection应该也类似)中添加元素时,如果这个元素后面又改变了,之前添加的值也会被改变: List<String> newString = new ArrayList<>(); String myString = "hello"; new ......
Java基础 线程池
线程池 主要核心原理: ① 创建一个池子,池子中是空的 ② 提交任务时,池子会创建新的线程对象来执行任务,当任务执行完毕,线程会还给池子,下回再次提交任务时,不需要创建新的线程,直接复用已有的线程即可 ③ 但是如果提交任务时,池子中没有空闲线程,并且也无法创建新的线程的时候,任务就会排队等待 线程池 ......
Java语言基础知识全总结
一.Java的优点 1. 跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快 2. 纯面向对象。Java 所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特点? 3. Jav ......
在学习JavaWeb以及Java框架中的疑惑
1. Sevlet和SpringMVC与SpringBoot以及Spring Servlet是服务器端小程序,本质上是属于Controller层的,举个例子,LoginServlet和LoginController是划等号的。 Spring MVC是Spring的一个模块,是一个web框架。通过Di ......
javaweb--API详解-PreparedStatemen
PreparedStatemen 1、预编译SQL语句并执行,预防SQL注入问题 对关键字进行转义 登录模块 package com.avb.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sq ......
LeedCode刷题(2)-Java随机数练习
2.随机数练习 (1)随机生成数 题目:请编写如下所示程序 随机生成并显示一位数的正整数(1~9的值) 随机生成并显示一位数的负整数(-9 ~ -1的值) 随机生成并显示两位数的正整数(10~99的值) ①Random类总结 random是Java提供的一个类库,它的实例会生成一连串的伪随机数 Ra ......
java——redis随笔——实战——优惠券秒杀——分布式锁
注意:synchronized用户单机(jvm)上面的锁,对于分布式应用则无能为力。所以对于分布式系统,则需要分布式锁。 分布式锁:满足分布式系统或集群模式下多线程课件并且可以互斥的锁 分布式锁的核心思想就是让大家共用同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心 ......
用java写一个计算机
public class Demo07 { public static void main(String[] args) { //用scanner创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in);//System.in是输入的意思 ......
javaweb--API详解--ResultSet
ResultSet 封装DQL查询语句的结果 Boolean next():(1)、将光标从当前位置向前移动一行 (2)、判断当前行是否为有效行 getxxx(参数):获取数据 xxx:数据类型 int getint/String getString() 参数: int:列的编号,从1开始 Stri ......
java的边框
1.关于边框 是能够在swing组件边缘周围渲染边框的对象的接口,边框就是对组件边界的装饰,可以为组件添加边框的色彩,也可以在边框上添加标题,让组件更加美观好看。 2.部分边框类 BevelBorder : 实现简单的两行斜角边框的类。 参数: protected int bevelType 斜面类 ......
[Java]Java初学之多线程03--同步与锁
Intro 本篇文章主要关于多线程"同步"以及"锁"的相关内容~ 正文 同步(Synchronize) 概念 “同步”是基于“并发”的需求而出现的 所谓并发,就是同一个对象被多个线程同时操作,比如两个人同时从同一个账户取钱,再比如春运抢票。 多个线程同时使用一个资源,必然会造成混乱。想象一下从前的线 ......
Java Hotspot G1 GC 原理
目录原理概念初始堆占用情况标记Remember Set原理Card TableCollect Set停顿预测模型G1的垃圾回收过程对象分配线程本地分配缓冲区Eden 区中分配Humongous 区分配堆内存结构传统的 GC 收集器G1 收集器G1 垃圾收集周期Young GCYoung GC 总结M ......
Java面试专题
Java面试专题 面试题背后的逻辑->拆分问题讲解->回答方式及参考问题 Redis篇 使用场景 1、你在最近的项目中哪些场景使用了redis? 缓存:缓存击穿,缓存穿透,缓存雪崩,双写一致性,数据过期策略,数据淘汰策略 分布式锁:setnx,redission 2、什么是缓存穿透,怎么解决? 缓存 ......
javaweb--JDBC的API-Connection
1、获取执行SQL对象 2、管理事务 setAutoCommit(bool) true为自动提交false为手动提交 commit()提交事务 rollback()回滚事务 package com.avb.jdbc; import java.sql.Connection; import java.s ......
javaweb--JDBC的API-DriverManager
DriverManager可以实现的功能 1、注册驱动 Class forName("com.mysql.jdbc.Driver"); 查看Driver类源码 在静态代码块中会运行DriverManager类 mysql5以后的驱动包可以省略注册驱动步骤 2、获取连接 java:mysql://ip ......