阳光 学院java

java基础漏洞学习----SSRF漏洞

java基础漏洞学习 SSRF漏洞 JAVA的SSRF常见利用协议 仅支持sun.net.www.protocol下所有的协议:http,https,file,ftp,mailto,jar及netdoc 传入的URL必须和重定向后的URL协议一致,JAVA中的SSRF不能和PHP中一样使用gothe ......
漏洞 基础 java SSRF

JAVA 多版本切换失效

更改Path 环境变量中的优先级 正确的优先级: 2.重启cmd,查看版本 参考: https://blog.csdn.net/weixin_44248000/article/details/130345724 ......
版本 JAVA

java学习-API

API java中的API: 就是jdk中提供的各种功能的java类,这些类将底层的实现封装了起来,使用的时候直接调用即可 类的例子 键盘录入:Scanner类 next(): 遇到了空格就不会继续录入数据 nextLine():可以将数据完整的接受过来,结束的标志就是回车换行符号 例子 packa ......
java API

java——redis随笔——实战——优惠券秒杀——分布式锁——基于redisson

Redisson入门 导入依赖 XML 12345 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.13.6</version></dependency> 配置Redi ......
优惠券 分布式 实战 redisson 随笔

Java 静态代码块、代码块、构造方法和多态继承的代码执行顺序

测试代码 import lombok.Getter; public class ExecutionOrder { { System.out.println("ExecutionOrder code 0"); } static { System.out.println("ExecutionOrder ......
代码 静态 顺序 方法 Java

Java 基础篇day02

数据在计算机底层都是采用二进制进行储存 二进制,使用0和1,按照逢二进一的规则来表示数据 列如:6=110 2=10等 计算机中表示数据的单元:字节(byte,简称B,是使用8个二进制位组成的); 字节中的每个二进制位就称为位(bit,简称b),1B=8b; 那么其他数据形式是如何存储的呢? 中文文 ......
基础 Java day 02

[Java]Java初学之多线程05--Lock锁

Intro 除了synchronized关键字,从JDK5.0开始,Java提供了更强大的线程同步机制--通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。 本文简单讲一下Lock锁的概念以及简单应用。 正文 其实理解了synchronized关键字后,Lock锁的理解就会变得简单起来。 ......
Java 线程 Lock 05

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

Java 基础篇day01

使用你正在使用的语言输出HelloWord! 这是振奋人心的一节课,你的码农人生从此处开始。 这里是一切的开始,少年。 Java是一门高级编程语言,电脑无法直接识别,需要先将java文件编译成class字节码文件,电脑才可以识别。(使用javac编译命令,java运行) 我们可以用现在市场上的主流J ......
基础 Java day 01

[Java]Java初学之多线程04--死锁

Intro 继上篇《03--同步与锁》,这篇文章着重讲讲“锁”,更具体来说,讲讲“死锁” 最近天气变冷了。。。真的冷❄ 记得多穿衣服 正文 死锁 死锁是指两个或多个线程都在等待对方释放资源,最后都停止执行的情形。 举个例子来说明会更清晰:我们两个都是宝可梦世界的训练家,我有暴飞龙,你有班基拉斯,我们 ......
Java 线程 04

详述Java内存屏障,透彻理解volatile

一般来说内存屏障分为两层:编译器屏障和CPU屏障,前者只在编译期生效,目的是防止编译器生成乱序的内存访问指令;后者通过插入或修改特定的CPU指令,在运行时防止内存访问指令乱序执行。 下面简单说一下这两种屏障。 1、编译器屏障 编译器屏障如下: asm volatile("": : :"memory" ......
屏障 volatile 内存 Java

Java List 添加元素要用拷贝

学Java遇到一个坑,那就是往ArrayList(别的collection应该也类似)中添加元素时,如果这个元素后面又改变了,之前添加的值也会被改变: List<String> newString = new ArrayList<>(); String myString = "hello"; new ......
拷贝 元素 Java List

Java基础 线程池

线程池 主要核心原理: ① 创建一个池子,池子中是空的 ② 提交任务时,池子会创建新的线程对象来执行任务,当任务执行完毕,线程会还给池子,下回再次提交任务时,不需要创建新的线程,直接复用已有的线程即可 ③ 但是如果提交任务时,池子中没有空闲线程,并且也无法创建新的线程的时候,任务就会排队等待 线程池 ......
线程 基础 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 Java

LeedCode刷题(2)-Java随机数练习

2.随机数练习 (1)随机生成数 题目:请编写如下所示程序 随机生成并显示一位数的正整数(1~9的值) 随机生成并显示一位数的负整数(-9 ~ -1的值) 随机生成并显示两位数的正整数(10~99的值) ①Random类总结 random是Java提供的一个类库,它的实例会生成一连串的伪随机数 Ra ......
随机数 LeedCode Java

java——redis随笔——实战——优惠券秒杀——分布式锁

注意:synchronized用户单机(jvm)上面的锁,对于分布式应用则无能为力。所以对于分布式系统,则需要分布式锁。 分布式锁:满足分布式系统或集群模式下多线程课件并且可以互斥的锁 分布式锁的核心思想就是让大家共用同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心 ......
优惠券 分布式 实战 随笔 redis

用java写一个计算机

public class Demo07 { public static void main(String[] args) { //用scanner创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in);//System.in是输入的意思 ......
计算机 java

java的边框

1.关于边框 是能够在swing组件边缘周围渲染边框的对象的接口,边框就是对组件边界的装饰,可以为组件添加边框的色彩,也可以在边框上添加标题,让组件更加美观好看。 2.部分边框类 BevelBorder : 实现简单的两行斜角边框的类。 参数: protected int bevelType 斜面类 ......
边框 java

[Java]Java初学之多线程03--同步与锁

Intro 本篇文章主要关于多线程"同步"以及"锁"的相关内容~ 正文 同步(Synchronize) 概念 “同步”是基于“并发”的需求而出现的 所谓并发,就是同一个对象被多个线程同时操作,比如两个人同时从同一个账户取钱,再比如春运抢票。 多个线程同时使用一个资源,必然会造成混乱。想象一下从前的线 ......
Java 线程 03

Java Hotspot G1 GC 原理

目录原理概念初始堆占用情况标记Remember Set原理Card TableCollect Set停顿预测模型G1的垃圾回收过程对象分配线程本地分配缓冲区Eden 区中分配Humongous 区分配堆内存结构传统的 GC 收集器G1 收集器G1 垃圾收集周期Young GCYoung GC 总结M ......
原理 Hotspot Java G1 GC

Java面试专题

Java面试专题 面试题背后的逻辑->拆分问题讲解->回答方式及参考问题 Redis篇 使用场景 1、你在最近的项目中哪些场景使用了redis? 缓存:缓存击穿,缓存穿透,缓存雪崩,双写一致性,数据过期策略,数据淘汰策略 分布式锁:setnx,redission 2、什么是缓存穿透,怎么解决? 缓存 ......
专题 Java

Java基础 多线程的 6 种状态

Java 的虚拟机当中没有定义运行状态,因为当线程抢夺到 CPU 执行权的时候,虚拟机会把当前线程交给操作系统管理,虚拟机就不管了。 ......
线程 状态 基础 Java

Java基础 阻塞队列的方式实现等待唤醒机制,哪里体现了等待?哪里又体现了唤醒?

Java的阻塞队列(Blocking Queue)可以用来实现等待唤醒机制,其中等待和唤醒的操作在队列的不同方法中体现: 1.等待: 在阻塞队列中,等待通常发生在以下情况: 2.当队列为空时,消费者线程试图从队列中取出元素时,它会被阻塞,直到队列中有元素可供消费。这种等待是通过阻塞队列的take() ......
队列 机制 方式 基础 Java

Java基础 等待唤醒机制(阻塞队列方式实现)

等待唤醒机制还可以用 阻塞队列的方式进行实现 练习:利用阻塞队列完成生产者和消费者(等待唤醒机制)的代码 细节:生产者和消费者必须使用同一个阻塞队列 阻塞队列的创建方式(泛型:队列里面数据的类型):ArrayBlockingQueue<String> queue = new ArrayBlockin ......
队列 机制 方式 基础 Java

Java基础 Java 为什么非要在 锁对象身上调用 wait()方法 和 notifyAll()方法

在Java中,wait()和notify()方法必须在同步块或同步方法内部使用,通常在锁对象上调用,有以下原因: 1.互斥性: 当你在同步块内部使用wait()和notify()方法时,它们与锁对象紧密相关,确保在调用wait()和notify()时能够维持互斥性。这意味着在调用wait()时,当前 ......
方法 Java notifyAll 对象 基础

Java基础 什么是生产者和消费者

在Java中,"生产者-消费者"(Producer-Consumer)是一种常见的并发编程模型,用于协调多个线程之间的工作,其中一些线程充当生产者,而其他线程充当消费者。这模型通常用于处理共享数据的情况,其中生产者线程生成数据并将其放入共享缓冲区,而消费者线程则从缓冲区中取出数据并进行处理。主要特点 ......
生产者 消费者 基础 Java

Java基础 等待唤醒机制——生产者代码实现

package pojo.xc01;public class Cook extends Thread{ @Override public void run() { while (true) { synchronized (Desk.lock) { if (Desk.count == 0) break ......
生产者 机制 代码 基础 Java

Java基础 等待唤醒机制——消费者代码实现

等待唤醒机制的三个角色:生产者、消费者、控制生产者和消费者的第三者 代码: package pojo.xc01;//用来控制生产者和消费者的执行public class Desk { //桌子上是否有面条(0:没有面条 1:有面条) //用布尔类型表示的话有一个小弊端,因为布尔类型只有两个值,只能控 ......
机制 消费者 代码 基础 Java

Java基础 生产者和消费者(等待唤醒机制)

生产者和消费者完整的执行过程: ......
生产者 机制 消费者 基础 Java
共10278篇  :75/343页 首页上一页75下一页尾页