首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏后端技术

    java nio 源码分析2 IO

    (答案:只是说明它写入了内核的send_queue) java nio是水平触发的, 而且缓冲区超过"低水位"就触发读事件, 不超过"高水位"就触发写事件, 那这个水位到底多高? "低水位"一词来自<unix网络编程卷1>, 本文假设你已经读过. read和write的返回值意义(写的返回值>=0, 读的返回值>= -1, 其中-1代表EOF) 参考 Java NIO SocketChannel write与DirectByteBuffer实现分析中,《Hadoop技术内幕》提到了可将写入的数据分成固定大小(比如8KB)的chunk,并以chunk为单位写入DirectBuffer 初识 Java NIO 分析了fd和nd ? write getTemporaryDirectBuffer和SocketChannelImpl值得分析 Java nio直接内存原理 提到了ByteBuffer.allocateDirect底层用malloc

    86320发布于 2019-12-20
  • 来自专栏WindCoder

    Java代理2 动态代理的实现原理分析

    , java.lang.Class<? ").getMethod("doBark"); m2 = Class.forName("java.lang.Object").getMethod("toString"); Objects.requireNonNull(h); this.h = h; } 此处的h即为之前传入的InvocationHandler实现类DynamicProxyHandler invoke方法触发 由方法doBark()分析可见 ").getMethod("doBark"); m2 = Class.forName("java.lang.Object").getMethod("toString"); 参考资料 动态代理 java动态代理作用及源码分析 Java JDK 动态代理使用及实现原理分析 代理 3 动态代理 System.getSecurityManager() java之jvm学习笔记四(

    62521发布于 2018-09-19
  • 来自专栏狗哥的 Java 世界

    Java 并发(2)AbstractQueuedSynchronizer 源码分析之独占模式

    在上一篇《Java 并发系列(1)AbstractQueuedSynchronizer 源码分析之概要分析》中介绍了 AbstractQueuedSynchronizer 基本的一些概念,主要讲了 AQS 下面我们会逐个步骤进行演示分析。 ? 独占模式 第一步:! = head; } } else { //1.指向当前尾结点 node.prev = t; //2. 2. 怎样以响应线程中断获取锁? 注:以上全部分析基于 JDK1.7,不同版本间略有差异,读者需要注意

    63820发布于 2020-03-19
  • 来自专栏Danny的专栏

    【J2SE快速进阶】——Java内存分析

    https://blog.csdn.net/huyuyang6688/article/details/42179387 程序的执行过程         要在Java分析内存,我们先来了解一下程序的执行过程 正如上图所示,大致分为3个步骤:          1、最开始,我们的程序是存在于硬盘中的,当启动运行时,程序会被加载(load)到内存中去,这里的内存可以看做我们的内存条;          2、此时 Java的数据类型          先来复习一下Java的数据类型,Java中数据类型分为两种,基本数据类型和引用数据类型,如下图: ?         newName);        到了函数这块,会有一点点复杂,因为SetName(String name)函数有一个类型为引用类型参数name,而且传入的实参为newName,这时newName中存储的值(地址2) 同理,当执行了SetName(String name)函数中的this.name=name时,会把栈内存中name中存储的值(地址2)赋值给堆内存中person的name,此时person中的name

    49520发布于 2018-09-13
  • 来自专栏ros--转载

    java 2

    我回想起学习Java时的学习路线,直接操作数据库是其中一项重要内容,无论使用哪种编程语言,与数据库的交互都是不可避免的。然而,直接操作MySQL数据库似乎缺乏趣味性,毕竟每天都在写SQL语句。 总的来说,相比Java,Python的SDK使用起来更加舒适。如果你曾经使用过Java SDK与平台接口对接,就会发现Python SDK上手更快。jaba

    20710编辑于 2023-11-30
  • 来自专栏LoRexxar's Blog

    从零开始学java web - struts2 RCE分析

    ps:在分析过程中觉得S2的官方真是傻逼,东填一下西补一下还指望能修复漏洞,真是不懂… S2-001 Remote code exploit on form validation error poc: ,会解析ognl语法,导致命令执行 漏洞分析 当表单内容输入后,参数会一直传递到 struts2-core-2.0.8.jar! 29+%2B+%27 漏洞分析 跟随参数到xwork-core-2.2.3.jar! 28%2bnew%20java.lang.String%28%23d%29%29%2C%23out.close%28%29%7D 漏洞分析 深入跟到struts2-core-2.2.3.jar! @getRuntime().exec('calc')}.action 漏洞分析 首先分析跟到xwork-core-2.3.14.2-sources.jar!

    55720编辑于 2023-02-21
  • 来自专栏魔都程序缘

    -- FE启动过程原理分析2 -- 启动类PaloFe.java

    比如第7点. 2. 处理PID文件 pid文件主要是防止启动相同的Fe进程. 在启动Fe时会检查pid文件所在目录是否存在fe.pid文件, 存在的话告诉用户已经启动一个进程了. 校验java版本 这个比较简单, 主要代码在JdkUtils.checkJavaVersion()中, 大家可以自行查看. 5. 初始化日志配置 这里通过Log4jConfig.initLogging()方法实现, 逻辑比较简单, 唯一难解的是log4j的配置文件模板是HARD CODE在java代码中的, 从目前java的方便处理和主要处理方法来看 DNS缓存过期设置 java.security.Security.setProperty("networkaddress.cache.ttl" , "60"); 7.处理bdb查看命令 在PaloFe.java ConnectScheduler.java这个类是jdbc连接管理的主要场地, 这里规定了最大的jdbc连接数, 这些连接如何执行(线程池)、如何验证用户、如何授权等. 10.

    1.2K30编辑于 2022-07-24
  • 来自专栏业余草

    2 万多字,183 道 Java 面试题分析及答案

    周末了,花费不少时间和精力为大家整理了 50 道 Java 线程面试题分析及答案,希望大家能利用业余时间,好好的复习复习,顺利的渡过这个寒冬,以及每年春季的面试季! Java IO 和 NIO 的面试题 IO 是 Java 面试中一个非常重要的点。你应该很好掌握 Java IO,NIO,NIO2 以及与操作系统,磁盘 IO 相关的基础知识。 的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date。 public static int dateDiff(Date d1, Date d2) throws Exception {long n1 = d1.getTime();long n2 = d2.getTime 分析下a和b发生交换的原因: 根据以上代码不难得出以下表达式: 1. b=(a^b)^b=a^b^b=a2. a=(a^b)^[(a^b)^b]=a^b^[a^b^b]=a^b^a^b^b=a^a^b^

    1.3K20发布于 2019-12-20
  • 来自专栏c2k2o6

    java基础-2

    burp collaborator client hashmap的put函数 调用hash方法 调用hashCode方法 java反射 Student student = new Student extends Shape { void draw() { System.out.println("Triangle.draw()"); } } jdk和jre的区别 jdk:java 开放工具包 java development kit  提供java的开放环境 和 运行环境 jre  :java 运行环境 java runtime environment  提供java运行所需的环境 jdk包括了jre ,如果只运行java程序 安装jre即可 ,如果要编写 java程序 需要安装  jdk java访问修饰符 default  默认访问修饰符  在同一包内 可见 private

    44640编辑于 2022-02-15
  • 来自专栏怀英的自我修炼

    Java漫谈2

    本周我们的Java漫谈从一个段子说起。话说有一个老程序退休了,在家闲着没事便开始学习写毛笔字,焚香,研墨,铺纸。站在薄如蝉翼白似雪的宣纸面前,提笔闭目。 绕了一圈,我们再把话题转回来,在Java中,Hello World又是什么样子的呢? 这就是一个Java里面Hello World的一句常用到的输出语句,之所以说它常用,是在程序刚开始跑通的时候会使用它来输出提示,也会在程序报错的时候用它的变形模式来输出错误信息。 稍微多看这句话2-3遍,会发现这句话会有几个特征。 首先,hello world只是这条显示语句的一个部分,它被双引号引用了。

    75580发布于 2018-03-12
  • Java笔记(2)

    ; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher i)Java)(? =8|11|17)"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher("Java8,java,jaVa4 "); while (matcher.find()) { System.out.println(matcher.group());//==>Java,jaVa } //? 格式化 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); String str2 = sdf2.format(date1); System.out.println

    30310编辑于 2024-05-30
  • 来自专栏云深之无迹

    Java笔记(2

    注意: 可以把一个较小的整数值(在int类型的表数范围以内)直接赋给一个long类型的变量,这并不是因为Java会把这个较小的整数值当成long类型来处理,Java依然把这个整数值当成int类型来处理, 需要说明的是,Java的var与JavaScript的var截然不同,JavaScript本质上是弱类型语言,因此JavaScript使用var定义的变量并没有明确的类型;但Java是强类型语言,因此Java Java引入var属于“向潮流投降”—由于Java本质上是强类型语言,因此使用var定义局部变量只是形式的改变,这些变量依然有明确的类型。 当程序第一次使用某个字符串直接量时,Java会使用常量池(constant pool)来缓存该字符串直接量,如果程序后面的部分需要用到该字符串直接量时,Java会直接使用常量池中的字符串直接量。 int a=5; int b=4; int c=a++---b*++a/b-->>2%a--;,c的值是多少? 太恐怖了,这种东西。我要是出题人就不出这种题

    72310发布于 2020-08-12
  • 来自专栏网络收集

    JAVA学习(2

    其路径记录在每个 java 文件首。 文件中,如果要调用其他 java 文件中定义的类 / 接口,就需要进行导入:同一存储路径(包)下的 java 文件不需要导入,可以直接调用。 已默认导入 java.lang 路径下所有 java 文件,包含 System、String、Object、Math 等常用类。 如果没有导入对应 java 文件,或者导入了多个同名 java 文件,在调用类 / 接口时需要标明路径。 package com.company.project.module; import java.util.Scanner; // 导入 java

    29220编辑于 2022-08-03
  • 来自专栏闵开慧

    java概念2

    2.4.2 源程序 import java.util.Scanner; public class ZhiYinShu { static int n, k = 2; public static 2.12.2 源程序 import java.util.Scanner; public class DuoXun { static long a = 2, b = 0; public static 2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2 2.17.2 源程序 import java.text.DecimalFormat; import java.util.*; public class LiRun { static double 2.18.2源程序 import java.util.Scanner; import java.io.*; public class TianShu { public static void

    1.9K80发布于 2018-03-30
  • 来自专栏云深之无迹

    microPython源码分析.2

    即使是mpy也不例外,所以我们的py目录下的文件是最主要的 就像这个样子的 我们再打开这个ESP32的目录,其实你第一个hello打印出来的时候就知道 一个完整的C程序一定只有一个main入口,所以我们分析从这里开始是正确的

    1.4K30发布于 2021-04-14
  • 来自专栏Java架构师必看

    Spring源码分析2

    Spring源码分析2 强烈推介IDEA2020.2破解激活,IntelliJ

    34320发布于 2021-05-14
  • 来自专栏学习笔记ol

    框架分析2)-React

    框架分析2)-React 主要对目前市面上常见的框架进行分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步。 优缺点分析 优点 1、虚拟DOM React使用虚拟DOM来管理和更新页面上的元素。虚拟DOM是一个轻量级的JavaScript对象,可以在内存中进行操作,然后将更改批量应用到实际的DOM上。 2、组件化开发 React鼓励开发者将应用程序拆分成多个可重用的组件。每个组件都有自己的状态和属性,可以独立地进行开发、测试和维护。 2、生态系统的快速变化 React的生态系统和社区在不断发展和变化,新的库和工具不断涌现。这可能导致开发者需要不断跟进和学习新的技术,以便保持在开发中的竞争力。

    35430编辑于 2023-10-11
  • 来自专栏前端学习归纳总结

    zepto 事件分析2($.on)

    return 后面的语句,在前面的分析中,分析了each函数和$对象,也就是对$对象中的每一个dom进行绑定事件,这里先跳过autoRemove函数,留在后面分析,如果有传入选择器,zepto先定义一个 ('in')[0]; box2.addEventListener("click",test2); 当我们点击h2时,target指向<h2>,currentTarget指向<div class='in' $.Event就有遇到过,在这里来分析其作用。 (); }; var box2 = document.getElementsByClassName('in')[0]; box2.addEventListener("click",test2); ? 最后on方法执行了一个add()函数,该函数留在下一篇分析

    68330发布于 2019-01-21
  • 来自专栏Sun

    Java性能分析

    背景 最近参与开发的java项目存在比较严重的性能问题,前端访问经常需要很长时间才能获得回包,为了定位系统中的热点区域,需要对系统进行profile,然后针对性的优化。 2、对原应用影响小。3、能方便进行远程profile。基于以上几点,最终我选择了JProfiler,这个工具的功能非常强大,能满足profile的各种需求。 2. Instrumentation是通过Instrument技术在待分析的class中插入监控字节码,能做复杂的分析,如函数调用次数等。Sampling是定时采集每个线程栈中的调用链,对原应用影响最小。 { e.printStackTrace(); } } } 编译:javac App.java 执行方式:java -agentpath:/home/jemuel/jprofiler11.0.1/bin/linux-x64/libjprofilerti.so=port=8849 App 3.3

    1.1K20发布于 2019-12-03
  • 来自专栏JackieZheng

    Java豆瓣电影爬虫——使用Word2Vec分析电影短评数据

    数据本身没有规律和价值,需要通过分析提炼成知识才有意义。抱着试试玩的想法,准备做一个有关情感分析方面的统计,看看这些评论里面的小伙伴都抱着什么态度来看待自己看过的电影,怀着何种心情写下的短评。    载入训练模型,分析感兴趣的维度(比如,近义词分词,关联词分析)     Github: https://github.com/NLPchina/Word2VEC_java 获取数据   数据就用短评数据 ; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.logging.Filter 训练数据   有了上述的分词后的文件,就可以作为Word2Vec算法的输入用来训练模型了。   这部分代码可以参看上面的GitHub代码中的Word2VEC.java类。 至此,我们明白了 Word2Vec是什么,有什么用,怎么用 常用的中文分词器以及具体用法,如何加载停用词库等 Word2Vec如何训练数据得到模型 Word2Vec如何使用训练的模型分析有趣的维度 如果您觉得阅读本文对您有帮助

    1.9K91发布于 2018-01-16
领券