ICode9

精准搜索请尝试: 精确搜索
  • 并发学习记录12:Unsafe2022-09-11 21:01:29

    概述 Unsafe对象提供了非常底层的操作内存和线程的方法,Unsafe对象不能直接调用,只能通过反射获得 通过反射获得unsafe对象: //通过反射获得unsafe对象 public class UnsafeTest01 { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessExceptio

  • Unsafe类park和unpark方法源码深入分析(mutex+cond)-转载2022-08-03 14:03:04

    转载:https://blog.csdn.net/saintyyu/article/details/107426428 说明:本篇博客整理自文末的多篇参考博客(每篇博客各有侧重)。本文结合源码对Unsafe的park和unpark方法进行了完整全面的梳理,并对部分参考博客中存在的错误描述进行说明。 LockSupport类的park/unpark方法可以更简单灵

  • LockSupport和Unsafe2022-07-11 16:34:22

    LockSupport LockSupport 的主要功能是提供线程一个"许可", 通过这个"许可"来控制线程的阻塞和恢复;      底层也是依赖于unsafe实现的    LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport 提供park()和unpark()方法实现阻塞线程和解除线程阻塞,LockSu

  • mac Error: EACCES: permission denied, mkdir2022-06-23 15:31:32

    原因还是权限问题 就是说 npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要权限的操作,比如写文件(尤其是写 /root/.node-gyp),就会崩掉了。 为了避免这种情

  • 如何写出同事看不懂的Java代码?2022-06-21 17:04:10

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 哈喽大家好啊,我是没更新就是在家忙着带娃的Hydra。 前几天,正巧赶上组里代码review,一下午下来,感觉整个人都血压拉满了。五花八门的代码让我不禁感叹,代码规范这条道路还是任重而道远… 那么今天就来给大家总结一波Java中的代码

  • 如何写出同事看不懂的Java代码?2022-06-21 09:03:59

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 哈喽大家好啊,我是没更新就是在家忙着带娃的Hydra。 前几天,正巧赶上组里代码review,一下午下来,感觉整个人都血压拉满了。五花八门的代码让我不禁感叹,代码规范这条道路还是任重而道远… 那么今天就来给大家总结一波Java中的代码作

  • ERR_UNSAFE_PORT浏览器安全问题无法访问的解决方案2022-05-31 14:33:56

    ERR_UNSAFE_PORT浏览器安全问题导致无法访问的解决方案 一、问题现象 二、浏览器自身机制 三、解决方法 1.Google Chrome浏览器 2.Firefox浏览器 3.Edge浏览器 四、部分非安全端口列表 一、问题现象配置好web的https协议的服务器后,使用浏览器访问服务器的时候出现ERR_UNSAFE_PORT

  • Go圣经学习笔记——底层编程2022-04-29 11:00:58

    Go底层编程 Go语言的语言特性, 隐藏许多细节: Go语言设计的一些安全机制将错误检查提前到了编译期,如类型检查错误。 数组越界、空指针等错误在运行时检查,发现错误立即终止,通过Go的内存管理、gc可以消除大部分的野指针和内存泄漏。 无法知道一个结构体真实的内存布局,也无法获

  • 【小测试】rust中的数组越界——好吧,这下证明rust不是零成本抽象了吧2022-04-16 09:03:35

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.编译期发现的数组越界 在数组下标是常量的情况下,编译期就会发现。 cargo new arr_test 在arr_test/src/main.rs中写入: fn main() { let mut arr : [i64;10] =

  • cas 代码2022-04-05 12:02:29

    public class CounterUnsafe { volatile int i = 0; private static Unsafe unsafe = null; //i字段的偏移量 private static long valueOffset; static { //unsafe = Unsafe.getUnsafe(); try { Field field = Unsafe.class.getDeclared

  • ERR_UNSAFE_PORT浏览器安全问题无法访问的解决方案2022-03-11 12:33:20

    ERR_UNSAFE_PORT浏览器安全问题导致无法访问的解决方案 目录 ERR_UNSAFE_PORT浏览器安全问题导致无法访问的解决方案 一、问题现象 二、浏览器自身机制 三、解决方法 1.Google Chrome浏览器 2.Firefox浏览器 3.Edge浏览器 四、部分非安全端口列表 一、问题现象 配置好web的h

  • golang低级编程:一.unsafe包2022-03-02 01:04:19

    go语言在设计上确保了一些安全的属性,限制了程序可能出错的途径。例如严格的类型转换规则。但也使得很多实现的细节无法通过go程序来访问,例如对于聚合类型(如结构体)的内存布局,或者一个函数对应的机器码。 这里我们将讨论unsafe包,它是由编译器实现的,实现了对语言内置特性的访问功能

  • Java中的Unsafe在安全领域的一些应用总结和复现2022-03-01 20:35:51

    目录0 前言1 基本使用1.1 内存级别修改值1.2 创建对象1.3 创建VM Anonymous Class2 利用姿势2.1 修改值以关闭RASP等防御措施2.2 创建NativeLibrary对象实现webshell2.3 匿名的内存马2.4 shellcode和instrumentation对象构建3 总结参考: 0 前言 unsafe里面有很多好用的方法,比如all

  • 一年工作经验的我,居然被问到了CAS2022-01-24 12:59:52

    楔子 前一篇文章,我们介绍了 synchronized,知道了 synchronized 可以解决某些数据的原子性问题,本篇文章我们以 AtomicInteger 为切入点,继续学习 CAS 无锁化的知识。 使用 synchronized 解决 i++的原子性 使用 synchronized 关键字,保证数据原子性 public class Test { stati

  • Unsafe应用解析2022-01-23 01:04:30

    1. 前言 Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使Java语言拥有了类似C语言指针一样操作内

  • NoAgent内存马检测2022-01-18 18:02:56

    内存马是国内目前比较流行的web层权限维持方式,研究文章也特别多。本人阅读了rebeyond师傅的Java 内存攻击技术漫谈后,尝试利用其中的技术开发用于内存马检测的工具。 检测 首先,内存马分为两类,一类是利用web中间件组件或框架的特性在web执行流程中嵌入恶意代码来执行命令,例如tomcat

  • [译]. NET 6 新增API - 中2022-01-17 10:02:55

    介绍 接下来我将给大家重点介绍一下.Net 6 之后的一些新的变更,文章都是来自于外国大佬的文章,我这边进行一个翻译,并加上一些自己的理解和解释。 源作者链接:https://blog.okyrylchuk.dev/20-new-apis-in-net-6#heading-a-new-periodictimer 正文 Metrics API .NET6实现了OpenTelemet

  • GOLANG MAP源码解读2022-01-13 15:01:24

    资料来源:  https://github.com/WuPeiqi/go_course 源码 /src/runtime/mapGolang map源码详解_风神韵-CSDN博客_go map 源码 map的基本结构 图源[1] 图源[3] 其中hmap的源码[2] // A header for a Go map. type hmap struct { // Note: the format of the hmap is also e

  • 解析struct的内存布局2022-01-08 23:34:33

    解析struct的内存布局 在平时开发过程中,我们常用map[string]struct{}来实现一个Set,用struct{}的原因是struct{}不占用内存空间,为什么空struct会不占用内存空间?对于自定义的struct的内存空间的占用是什么样的? struct的大小 struct和java中的对象类似,在内存中都是一块连续的空间,在ja

  • Go语言结构体中的内存对齐2022-01-07 19:00:57

    1 如何计算结构体占用的空间 在 Go 语言中,我们可以使用 unsafe.Sizeof 计算出一个数据类型实例需要占用的字节数。 package main import ( "fmt" "unsafe" ) type Args struct { num1 int num2 int } type Flag struct { num1 int16 num2 int32 } func main

  • Java:Unsafe类的使用2022-01-05 21:34:40

    一、获取Unsafe类实例 1 Field field = Unsafe.class.getDeclaredField("theUnsafe"); 2 field.setAccessible(true); 3 return (Unsafe) field.get(null);  theUnsafe 是Unsafe内部的一个字段,Unsafe在静态代码块中实例化一个Unsafe类,并通过反射获取Unsafe。

  • 计算机最小单位2022-01-03 12:01:48

    计算机的基本的存储单元有:    位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。二进制的一个“0”或一个“1”叫一位。    字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。各种信息在计算机中存储、处理至少需要一个字节   ASCIIS码: 1个英文字母(不分

  • Go语言map底层源码理解(map的扩容)2022-01-03 10:34:46

    开心一刻        放假,送室友坐高铁回家,临上车前,我说:“我去买几个橘子,你就站在此地,不要走动。”        室友愣了一下,说:“你TM什么时侯都不忘占我便宜。” 写在前面        最近在看Go map底层源码,看到go map的扩容机制,产生几个疑问,通过看源码能够理解,但是总感觉不够透

  • unsafe和在Go中的内存对齐2021-12-30 13:35:06

    unsafe包和在Go中的内存对齐 unsafe包 unsafe包提供了一些跳过Go语言类型安全限制的操作 其中包括两种类型和三个函数  type AribitraryType //可以是任何一种类型 例如: type AribitraryType int //int类型 ​ 指针 Go语言指针只支持取地址和解引用 不支持运算 type Poin

  • 干掉Random,随机数我用这个类!2021-12-29 02:04:31

    前言 最近在写一些业务代码时遇到一个需要产生随机数的场景,这时自然想到 jdk 包里的 Random 类。但出于对性能的极致追求,就考虑使用 ThreadLocalRandom 类进行优化,在查看 ThreadLocalRandom 实现的过程中,又追了下 Unsafe 有部分代码,整个流程下来,学到了不少东西,也通过搜索和提问解

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有