• 2024-10-16Java最全面试->Java基础->JavaSE->基础语法
    基础语法下边是我自己整理的面试题,基本已经很全面了,想要的可以私信我,我会不定期去更新思维导图哪里不会点哪里基本数据类型和方位修饰符数据类型有哪些基本数据类型byte、int、short、long、float、double、boolean、char引用数据类型类、数组、接口访问权限修饰符
  • 2024-09-30HashMap原理
    HashMap原理在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:publicnativeinthashCode();```根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。为何Object类需要这样一个方法?它
  • 2024-09-22Java反序列化调用链分析系列 | URLDNS链
    URLDNS链URLDNS链是java通过反序列化发起dns请求的利用链。一般用于测试反序列化漏洞。该链比较简单,利用链也比较短。其中入口类为HashMap,执行类为URLStreamHandler的hashCode()方法。整个调用链如下:HashMap.readObject()HashMap.putVal()HashMap.hash()URL.hashCode()
  • 2024-09-22Java集合类面试题:Map接口(链表、HashMap、红黑树)
    收集大量Java经典面试题目
  • 2024-09-20深入理解Java对象结构
    一、Java对象结构实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示1、Java对象的三部分(1)对象头对象头包括三个字段,第一个字段叫作MarkWord(标记字),用于存储自身运行时的数据,例如GC标志位、哈希码
  • 2024-09-16HashSet&HashMap
    一.哈希
  • 2024-09-10Java面试题大总结(全网最全)
    1、普通类和抽象类有哪些区别?抽象类不能被实例化;抽象类可以有抽象方法,只需申明,无须实现;有抽象方法的类一定是抽象类;抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;抽象方法不能声明为静态、不能被static、final修饰。2、接口和抽象类有什么区别?(1)接口
  • 2024-09-06从内存层面分析Java 参数传递机制
    在Java中,理解参数传递机制对于编写高效和可维护的代码至关重要。本文将探讨基本数据类型和引用数据类型的参数传递方式,并介绍System.identityHashCode方法及其作用。我们将结合栈帧的概念,通过示例代码来详细解释这些机制。System.identityHashCode的作用System.ident
  • 2024-09-06[Java基础]hashcode/equals
    hashcode()/equals()/====当==左右两边是基本类型的时候,比较的是数值是否相等;当==左右两边是对象(引用)类型的时候,比较的是p和p2这两个对象所指向的堆中的对象地址对于==来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是
  • 2024-09-03java-URLDNS 链条审计
    java-URLDNS链条审计URLDNS链条,是我们学习java反序列化的启蒙链条,通过java内置的类函数调用,达到DNS外带数据的目的。首先让我们来看一个小实验从dnslog.cn平台获取一个域名publicclassurlDNS{publicvoidURL()throwsUnknownHostException{Inet
  • 2024-09-02java~重写hashcode和equals
    单字段和多字段重写hashcode在Java中,重写hashCode方法的场景通常与对象的哈希值计算有关,特别是在使用哈希表(如HashMap,HashSet等)时。下面是你提供的两种hashCode实现的具体使用场景分析:1.第一种实现@Overridepublicbooleanequals(Objecto){if(this==o)
  • 2024-08-31equals ,hashcode ,== ,三者之间的关系与区别
    为什么要重写equals和hashcode        在Java中,重写equals方法和hashCode方法是为了确保对象在逻辑上相等时,它们在集合(如HashMap、HashSet)中的行为也是一致的。以下是详细解释:为什么要重写 equals 方法默认行为:默认情况下,Object类的equals方法比较的是两个对
  • 2024-08-30一文说透 String 的 HashCode
    首先需要明确版本,不同版本的实现是不同的。JDK1.8以前底层的实现是char[]。publicinthashCode(){inth=hash;if(h==0&&value.length>0){charval[]=value;for(inti=0;i<value.length;i++){h=31*
  • 2024-08-26equals与hashCode关系梳理
    目录equals用法hashCode用法总结为什么一个类中需要两个比较方法为什么重写equals方法时必须同时重写hashCode方法?Reference这个并不是一个通用性编程问题,只属于在Java领域内专有问题。要做好心理准备,这是一个复杂类的问题,要解答这个问题,需要梳理清楚两个函数和其它类之间
  • 2024-08-22HashMap&HashSet源码解读
    HashMapHashSet需要提起的只有一句话HashSet使用适配器模式包装了HashMap,所有的Value都是同一个Object对象,只有Key不一样,HashSet就是HashMap的KeySetHashMap概述一个允许Key为空也允许Value为空的哈希表Hash冲突当多个对象的hashcode计算结果一致时,需要处理冲突开放寻址
  • 2024-08-15Java反序列化(二)——URLDNS链、CC1链
    0背景白日梦组长投稿视频-白日梦组长视频分享-哔哩哔哩视频(bilibili.com)实验环境Java:1.8.0_65IDEA:2022commons-collecetions:3.2.11URLDNS链分析    URLDNS并不能RCE,只是用来发起dns请求,一般用做初步探测,看能不能反序列化和出网。先给出利用链:GadgetChai
  • 2024-08-06Jave-this关键字
    目录1.this关键字先看一段代码,并分析问题 什么是this案例演示 2.this的注意事项和使用细节1.this关键字先看一段代码,并分析问题 什么是this this就代表的是当前对象。this可以大概理解成“我的” ,比如我的书包,这里的“我的”就代表当前对象。this是一个
  • 2024-08-05java基础 之 重写equals时为什么要重写hashCode
    文章目录前言回答了解哈希hashCode()总结前言了解equals戳这里→java基础之equals和==的区别请记住这句话:两个对象相同,哈希码一定相同。哈希码相同,两个对象不一定相同。回答只重写equals()方法,不重写hashCode()方法:存在A.equals(B)为true,但是hashCode不
  • 2024-08-01hashCode方法 和 equals()方法
    packagecom.coding.spring.mvc;importjava.util.HashSet;publicclassUser{privateStringname;publicUser(Stringname){this.name=name;}@Overridepublicbooleanequals(Objectobj){Useruser=(User)obj;
  • 2024-07-30温度矩阵为 phash?
    我有以下问题:我想在python中比较热图像(数据以一个大矩阵/每个像素一个值的形式出现)并确定它们是否相等。我读了很多关于phash的内容,但都是在图片的背景下。由于我的原始数据是矩阵,我想知道这是否是一种有意义的方法?我读了很多关于phash的内容,但无法弄清楚/找到关于它如
  • 2024-07-30全网最全JAVA面试题,终于整理完了
    一、Java基础1、基础概念与常识Java语言有哪些特点?简单易学(语法简单,上手容易);面向对象(封装,继承,多态);平台无关性(Java虚拟机实现平台无关性);支持多线程(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言却提供了多线程支持);可靠
  • 2024-07-29urldns
    urldns分析这条链的目的是ping一个地址最后的地方是在InetAddress.getByName(host),然后在URLStreamHandler的getHostAddress里调用了他protectedsynchronizedInetAddressgetHostAddress(URLu){if(u.hostAddress!=null)returnu.hostAddress;St
  • 2024-07-28JAVA 实现 - 哈希表
    哈希算法String.hashCodepublicstaticvoidmain(String[]args){Stringstr1="abc";Stringstr2="bca";inthash=0;for(inti=0;i<str2.length();i++){charc=str1.charAt(i);System.out.pr
  • 2024-07-22深入理解Java中的equals和hashCode方法
    序言:在Java编程中,equals和hashCode方法是两个非常重要的概念。它们直接关系到对象的比较和哈希表的使用效率。本文将详细介绍这两个方法的工作原理、如何正确重写它们以及一些常见的误区。一、equals方法equals方法的作用equals方法用于判断两个对象是否相等,返回一个布
  • 2024-07-15深入剖析hashCode和equals的区别及大厂面试题
    关于作者:毕业半年被裁,一个月斩获大厂offer,面试经验50+。“跟着周哥走,offer手里有”。文末免费领取周哥50+场面试总结出的必背面试题。首先我们要知道,equals()和hashCode()都属于Object类,而Object类是所有类(包括Class)的父类。搞清楚这一点,再分别解析equals和hashCode,