java技术圈 为您找到相关结果 356

一次系统调用开销到底有多大?

首先说说系统调用是什么,当你的代码需要做IO操作(open、read、write)、或者是进行内存操作(mmpa、sbrk)、甚至是说要获取一个系统时间(gettimeofday),就需要通过系统调用来和内核进行交互。无论你的用户程序是用什么语言实现的,是php、c、java还是go,只要你是建立在Linux内核之上的,你就绕不开系统调用。图1 系统调用在计算机系统中的位置大家可以通过strace命令来查看到你的程序正在执行哪些系统调用。比如我查看了一个正在生产环境上运行的nginx当前所执行的系统调用,如下:# strace -p 28927 Process 28927 attached epoll_wait(6, {{EPOLLIN, {u32=96829456, u64=1403123...阅读全文

博文 2020-06-10 07:12:06 知乎

利用转换流将GBK格式文件以UTF-8输出_Java_十里の清风

utf-8格式如何转化为gbk格式 02-27 阅读数 6225 utf-8格式如何转化为gbk格式 今天在编码的时候由于存储的数据和取得数据格式不一致,... 博文 来自: HY845638534的博客 解决中文字符乱码问题,如何将gbk格式转换utf-8格式 04-06 阅读数 2104 中文乱码的原因是因为编码格式是gbk的,而显示的时候是utf-8格式的,所以需要将其utf-8格式,才能正常显示出来。1.gbk生成utf8程序需要经过两次转化。 1.gbk->uni... 博文 来自: u012681014的专栏 Java练习>转换流>>将GBK编码的文本文件,转换为UTF-8编码的文本文件 08-13 阅读数 1312 练习:转换文件编码。题目:将GBK编码的文本文件,转换为...阅读全文

博文 2020-04-26 06:30:21 CSDN博客

Cglib及其基本使用 - 五月的仓颉

前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的 之后要看AOP源码了,Proxy+InvocationHandler这套我已经很熟了,想着如果把Cglib研究研究,应该看AOP源码的时候会更快一些,因此本文就研究一下Cglib是什么、如何一些基本的使用、底层实现原理。 Cglib是什么 Cglib是一个强大的、高性能的代码生成包,它广泛被许多AOP框架使用,为他们提供方法的拦截。下图是我网上找到的一张Cglib与一些框架和语言的关系: 对此图总结一下: 最底层的是字节码Byteco...阅读全文

博文 2021-06-12 14:36:43 博客园

TreeMap原理实现及常用方法 - 工匠初心

目录一. TreeMap概述二. 红黑树回顾三. TreeMap构造四. put方法五. get 方法六. remove方法七. 遍历八. 总结 前面我们分别讲了Map接口的两个实现类HashMap和LinkedHashMap,本章我们讲一下Map接口另一个重要的实现类TreeMap,TreeMap或许不如HashMap那么常用,但存在即合理,它也有自己的应用场景,TreeMap可以实现元素的自动排序。 一. TreeMap概述 TreeMap存储K-V键值对,通过红黑树(R-B tree)实现; TreeMap继承了NavigableMap接口,NavigableMap接口继承了SortedMap接口,可支持一系列的导航定位以及导航操作的方法,当然只是提供了接口,需要TreeMap自己去实...阅读全文

博文 2021-08-20 08:54:35 博客园

Spring中集成Groovy的四种方式_蓝天之枫

groovy是一种动态脚本语言,适用于一些可变、和规则配置性的需求,目前Spring提供ScriptSource接口,支持两种类型,一种是 ResourceScriptSource,另一种是 StaticScriptSource,但是有的场景我们需要把groovy代码放进DB中,所以我们需要扩展这个。 ResourceScriptSource:在 resources 下面写groovy类 StaticScriptSource:把groovy类代码放进XML里 DatabaseScriptSource:把groovy类代码放进数据库中 工程模块为: ResourceScriptSource groovy的pom groovy-all阅读全文

博文 2021-07-09 02:58:30 CSDN博客

为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?

BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。 很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal。 所以,很多支付、电商、金融等业务中,BigDecimal的使用非常频繁。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。 除了需要用BigDecimal表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。 关于这个知识点,在最新版的《阿里巴巴Java开发手册》中也有说明: 这背后的思考是什么呢? 我在之前的CodeReview中,看到过以下这样的低级...阅读全文

博文 2021-05-26 02:44:44 juejin.cn

Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖? - 江南一点雨

前两天被人问到这样一个问题: “松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?” 大伙有这样的疑问,就是因为还没搞清楚可执行 jar 和普通 jar 到底有什么区别?今天松哥就和大家来聊一聊这个问题。 多了一个插件 Spring Boot 中默认打包成的 jar 叫做 可执行 jar,这种 jar 不同于普通的 jar,普通的 jar 不可以通过 java -jar xxx.jar 命令执行,普通的 jar 主要是被其他应用依赖,Spring Boot 打成的 jar 可以执行,但是不可以被其他的应用所依赖,即使强制依赖,也无法获取里边的类。但是可执行 jar 并不是 Spring Boot 独有的,Java 工程本身就可以打包成...阅读全文

博文 2020-05-29 09:15:39 博客园

排序算法(六)

前言我们在上篇文章 排序算法(五)-双调排序 介绍了双调排序,今天我们来看一下另一种排序算法 —— TimSort。TimSort是Tim Peters发明的一种混合排序,最早是Python语言的内置排序算法。关于Python内置的TimSort描述可以查看该 文档。关于TimSort的理论基础,可以查看该篇论文 Optimistic Sorting and Information Theoretic Complexity,这篇论文论证了插入排序和归并排序合并后效率提高的可能性,即TimSort的理论基础。Java自Java 7 后加入TimSort,其实现参考了Python版本的实现,我们可以在JDK源码的util包下找到它,java.util.TimSort,这个class不是publi...阅读全文

博文 2021-08-18 12:35:11 TimSort | SakuraTears的博客

什么是FastJson中AutoType反序列化漏洞?_hosaos的博客

文章目录 频繁出现的反序列化漏洞parse()及parseObject()AutoType及安全校验AutoType安全校验AutoType黑名单机制SafeMode安全机制攻击思路 反序列化攻击模拟TemplatesImpl攻击调用链路攻击类Translet生成构造攻击JSON串攻击模拟 写在最后 频繁出现的反序列化漏洞 最近公司的小伙伴们收到了一波安全工单,因为FastJson存在高危漏洞,要求将FastJson版本号升级到1.2.69及以上 漏洞描述如下 在Fastjson<=1.2.68的版本中,通过新的Gadgets链绕过autoType开关,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,实现了反序列化漏洞利用的远程代码执行效果,同时,此次修复补丁也补充了auto...阅读全文

博文 2022-05-23 08:07:38 CSDN博客_fastjson的autotype属性

Spring Boot 你不得不会的 spring.factories 配置

在 Spring Boot 项目中,怎样将 pom.xml 文件里面添加的依赖中的 bean 注册到 Spring Boot 项目的 Spring 容器中呢?你可能会首先想到使用 @ComponentScan 注解,遗憾的是 @ComponentScan 注解只能扫描 Spring Boot 项目包内的 bean 并注册到 Spring 容器中,项目依赖包中的 bean 不会被扫描和注册。此时,我们需要使用 @EnableAutoConfiguration 注解来注册项目依赖包中的 bean。而 spring.factories 文件,可用来记录项目包外需要注册的 bean 类名。使用 spring.factories 文件有什么好处呢?假如我们封装了一个插件,该插件提供给其他开发人员使用。...阅读全文

博文 2022-07-25 02:26:27 人人编程网

一口气说出 6种 @Transactional 注解失效场景_HollisChuang's Blog

引言 昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。 @Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。 一、事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。 编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例: 1try { 2 //TODO ...阅读全文

博文 2020-10-16 14:52:17 CSDN博客

Spring事务传播行为详解 - 个人文章

JerryTse 386 Spring事务传播行为详解 java spring 事务 更新于 2019-09-30 约 29 分钟 前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文对七种事务传播行为做详细介绍,内容主要代码示例的方式呈现。 基础概念 1. 什么是事务传播行为? 事务传播行为用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法的时...阅读全文

博文 2020-04-24 02:38:10 SegmentFault 思否

Alibaba之jvm

前言 在开始之前,我们先来模拟一下以下的场景: 小李:“小明,你的接口没有返回数据,麻烦帮忙看一下?” 小明:“我这边的数据也是从别人的服务器中拿到的,但是我不确定是因为逻辑处理有问题导致没有结果,还是因为我依赖的服务有问题而没有返回结果,我需要确认一下。” 小明:“哎呀,线上没有日志,我需要加个日志上个线。” 30 分钟之后…… 小明:“不好意思,日志加错地方了……稍等……” 接来下隆重登场的就是本文的主角 JVM SandBox 了。基于 JVM SandBox,我们可以很容易地做到在不重新部署应用的情况下,给指定的某些类的某些方法加上日志功能。当然,动态加日志仅仅是 JVM SandBox 可以应用的一个小小的场景,JVM SandBox 的威力远不在于此。套用官方的话说就是"JVM-...阅读全文

博文 2021-06-29 02:14:20 sandbox初体验 | 码农家园

Netty之ByteBuf零拷贝

Netty之ByteBuf零拷贝我们先来看下Zero-copy的定义: "Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another. This is frequently used to save CPU cycles and memory bandwidth when transmitting a file over a network. 所谓的 Zero-copy, 就是在操作数据时, 不需要将数据 buffer 从一个内存区域拷贝到另一个内存区域. 少了一次内存的拷贝, 减少了cpu...阅读全文

博文 2021-08-28 11:10:37 简书

java代码之美(4)---guava之Immutable(不可变)集合 - 雨点的名字

Immutable(不可变)集合 一、概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开。Collections是jdk提供的一个工具类。 Guava中不可变对象和Collections工具类的unmodifiableSet/List/Map/etc的区别: 当Collections创建的不可变集合的wrapper类改变的时候,不可变集合也会改变,而Guava的Immutable集合保证确实是不可变的。 1、JDK中实现immutable集合 在JDK中提供了Collections.unmodifiableXXX系列方法来实现不可变集合, 但是存在一些问题,下面我们先看一个具体实例: public class Immutable...阅读全文

博文 2020-05-19 02:57:42 博客园

JAVA8 之 Lambda 表达式与方法引用(二) - 当年明月123

在上一章我们介绍了函数式编程的概念和函数式接口。Lambda 表达式就是函数式编程的具体体现,它需要借助函数式接口才能应用在 Java 语言中。 定义 在编程语言中,lambda 表达式是一种用于指定匿名函数或者闭包的运算符。Lambda 可以很清晰地表达一个匿名函数,可以被传递。有了 Lambda 表达式之后,Lambda 表达式为 Java 添加了缺失的函数式编程特性,使我们能将函数当作一等公民看待。 在将函数作为一等公民的语言中,Lambda 表达式的类型是函数。但在 Java 中,Lambda 表达式是对象,他们必须依附于一类特别的对象类型-函数式接口,因为 Java 要保持向后兼容。 Java 的 Lambda 表达式是一种匿名函数,它是没有声明的方法,即没有访问修饰符,返回值声明...阅读全文

博文 2020-06-09 10:50:30 博客园

动态代理

我们来比较Java的class和interface的区别: 可以实例化class(非abstract); 不能实例化interface。 所有interface类型的变量总是通过向上转型并指向某个实例的: CharSequence cs = new StringBuilder(); 有没有可能不编写实现类,直接在运行期创建某个interface的实例呢? 这是可能的,因为Java标准库提供了一种动态代理(Dynamic Proxy)的机制:可以在运行期动态创建某个interface的实例。 什么叫运行期动态创建?听起来好像很复杂。所谓动态代理,是和静态相对应的。我们来看静态代码怎么写: 定义接口: public interface Hello { void morning(String na...阅读全文

博文 2021-06-12 14:15:39 廖雪峰的官方网站

图解LinkedHashMap原理

图解LinkedHashMap原理1 前言 LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理 2 LinkedHashMap使用与实现 先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟: LinkedHashMap结构.png 2.1 应用场景 HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。 Map hashMap = new HashMap(); hashMap.put("name1", "josan1"); hashMap.put("name...阅读全文

博文 2021-08-20 08:19:33 简书

大家都说 Java 反射效率低,你知道原因在哪里么

【这是 ZY 第 17 篇原创技术文章】 预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低的原因 文章概览 我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运用更是常见。我相信,每次提到反射,大家的第一反应一定是反射效率低,尽量少使用。 但是反射的效率到底低多少?反射效率低的原因在哪里? 这篇文章就来探索一下这些问题。 由于本机上安装的是 openjdk 12,所以这里就使用 openjdk 12 源码进行分析。 我们先看结论,然后分析一下 Java 反射的原理,过程中大家可以根据结论,对源码做一些思考,然后再根据原理中的一些实现,看看 Java 反射效率低的原因。 零、先放结论 Java 反射效率低主要原因...阅读全文

博文 2021-06-11 13:40:17 juejin.cn

由阿里巴巴Java开发规约HashMap条目引发的故事-云栖社区

大热的《阿里巴巴Java开发规约》中有提到: 【推荐】集合初始化时,指定集合初始值大小。说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可: public HashMap (int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); } 看到代码规约这一条的时候,我觉得是不是有点太 low 了,身为开发,大家都知道 HashMap 的原理。 什么?这个要通过插件监测?没必要吧,哪个开发不知道默认大小,何时 resize 啊,然后我和孤尽打赌随机咨询几位同学以下几个问题: HashMap 默认bucket数组多大? 如果new HashMap<>(19),bucket数组...阅读全文

博文 2020-07-14 09:57:56 阿里云

UDP 单播、广播和多播 - Rimond_Jing

使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。 通常我们讨论的udp的程序都是一对一的单播程序。本章将讨论一对多的服务:广播(broadcast)、多播(multicast)。对于广播,网络中的所有主机都会接收一份数据副本。对于多播,消息只是发送到一...阅读全文

博文 2021-08-26 04:06:01 博客园

大数据开发之Hive篇12-Hive正则表达式

备注: Hive 版本 2.1.1 Table of Contents一.Hive 正则表达式概述1.1 字符集合:1.2 边界集合:1.3 重复次数集合:1.4 组合操作符:1.5 匹配操作符:1.6 转义操作符:二.Hive 正则表达式案例2.1 regexp2.2 regexp_replace2.2.1 截取字符串中汉字部分2.2.2 截取字符串中数字部分2.2.3 截取字符串中字母部分2.2.4 截取字符串中的大小写字母和数字2.3 regexp_extract参考: 一.Hive 正则表达式概述 Hive的正则表达式虽然没有关系型数据库的正则表达式那么强大,但是一样可以解决HQL开发过程中的诸多问题,数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代...阅读全文

博文 2022-07-21 03:55:26 墨天轮

深入理解JDK动态代理机制

深入理解JDK动态代理机制本文是基于jdk1.8来对动态代理的底层机制进行探究的 Java中代理的实现一般分为三种:JDK静态代理、JDK动态代理以及CGLIB动态代理。在Spring的AOP实现中,主要应用了JDK动态代理以及CGLIB动态代理。但是本文着重介绍JDK动态代理机制,CGLIB动态代理后面会接着探究。 代理一般实现的模式为JDK静态代理:创建一个接口,然后创建被代理的类实现该接口并且实现该接口中的抽象方法。之后再创建一个代理类,同时使其也实现这个接口。在代理类中持有一个被代理对象的引用,而后在代理类方法中调用该对象的方法。 其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。代理类和被代理类通常会存在关联关系(即上面提到的持...阅读全文

博文 2021-06-12 14:15:56 简书

从Lambda架构到Kappa架构再到?浅谈未来数仓架构设计~

Linked大佬Jay Kreps曾发表过一篇博客,简单阐述了他对数据仓库架构设计的一些想法。从Lambda架构的缺点到提出基于实时数据流的Kappa架构。本文将在Kappa架构基础上,进一步谈数仓架构设计。 什么是Lambda架构? 借用Jay Kreps的一张图来看,Lambda架构主要由这几部分构成:数据源(Kafka),数据处理(Storm,Hadoop),服务数据库(Serving DB)。其中数据源和服务数据库是整个架构数据的入口和出口。数据处理则是分为在在线处理和离线处理两部分。 当数据通过kafka消息中间件,进入Lambda架构后,会同时进入离线处理(Hadoop)和实时处理(Storm)两个处理模块。离线处理进行批计算,将大量T+1的数据进行汇总。而实时处理则是进行流处理...阅读全文

博文 2022-07-08 09:31:17 阿里云开发者社区

Golang 泛型初探

Golang 的泛型实现已经正式合并到 master 分支上啦,之后也会在 master 分支上进行开发,那么作为期待这个 feature 许久的 gopher,也想第一时间看看到底是如何实现的。语法这里不过多讲解泛型的语法,具体可以参考一下 https://github.com/golang/go/issues/43651 这个 issue。简单来说,在 struct 和 func 的名字后面可以加一个 [] 里面包含泛型的名字和限制条件,比如:123type container[T any] struct{ elem T}any 是个特殊的关键字,表示所有类型都可以。示例程序这里我们写一个示例程序来编译成汇编,来看看泛型到底是怎么实现的:1234567891011121314151617...阅读全文

博文 2021-08-18 06:18:24 Pure White

flink taskmanager&slots&并行度&任务链&task分配详解 - 民宿

TaskManger与Slots Flink中每一个worker(TaskManager)都是一个JVM进程,它可能会在独立的线程上执行一个或多个subtask。为了控制一个worker能接收多少个task,worker通过task slot来进行控制(一个worker至少有一个task slot)。 每个task slot表示TaskManager拥有资源的一个固定大小的子集。假如一个TaskManager有三个slot,那么它会将其管理的内存分成三份给各个slot。资源slot化意味着一个subtask将不需要跟来自其他job的subtask竞争被管理的内存,取而代之的是它将拥有一定数量的内存储备。需要注意的是,这里不会涉及到CPU的隔离,slot目前仅仅用来隔离task的受管理的内存。...阅读全文

博文 2022-10-02 13:27:55 博客园

几款符合 OpenTracing 规范的分布式链路追踪组件介绍与选型 - 腾讯云开发者社区

分布式链路追踪组件是在分布式架构中很重要的组件,用于排查分布式系统所遇到的问题。市面上有多款流行的分布式链路追踪组件,包括 Zipkin、Jaeger、Pinpoint 和 Skywalking 等,我们来了解下这几款组件的相关特性,以帮助我们选型。 分布式链路追踪规范:OpenTracingTracing 是在上世纪 90 年代就已出现的技术,但真正让该领域流行起来的还是源于 Google 的一篇 Dapper 论文。分布式追踪系统发展很快,种类繁多,但无论哪种组件,其核心步骤一般有 3 步:代码埋点、数据存储和查询展示,如下图所示为链路追踪组件的组成。 链路追踪组件的组成目前流行的链路追踪组件有 Jaeger、Zipkin、Skywalking 和 Pinpoint 等。在数据采集过程中...阅读全文

博文 2022-12-23 09:15:09 腾讯云

Hive中的explode使用全解

本节主要介绍explode和posexplode函数的使用。1、数据介绍 主要包括三列,分别是班级、姓名以及成绩,数据表名是default.classinfo。2、单列Explode 首先来看下最基本的,我们如何把student这一列中的数据由一行变成多行。这里需要使用split和explode,并结合lateral view实现。代码如下:select class,student_name from default.classinfo lateral view explode(split(student,',')) t as student_name 结果如下:3、单列Posexplode 接下来,我们想要给每个同学来一个编号,假设编号就按姓名的顺序,此时我们要用到另一个hive函数,叫做...阅读全文

博文 2022-03-27 05:57:59 知乎

java 的init方法与clinit方法 - 大哥超帅

jvm加载过程 加载=》验证=》准备=》解析=》初始化=》使用=》卸载 一 clinit初始化/静态方法 类型初始化方法主要是对static变量进行初始化操作,对static域和static代码块初始化的逻辑全部封装在方法中。 java.lang.Class.forName(String name, boolean initialize,ClassLoader loader),其中第二个参数就是是否需要初始化。 Java类型初始化过程中对static变量的初始化操作依赖于static域和static代码块的前后关系,static域与static代码块声明的位置关系会导致java编译器生成方法字节码。类型的初始化方法只在该类型被加载时才执行,且只...阅读全文

博文 2022-03-31 07:03:19 博客园

SQL子查询总结:相关子查询与非相关子查询有什么区别

如果一个select语句能够返回单个值或者一列值,且该select语句嵌套在另一个SQL语句(例如select语句、insert语句、update语句或者delete语句)中,那么该select语句成为“子查询”(也叫内层查询),包含子查询的SQL语句称为“主查询”(也叫外层查询)。为了标记子查询与主查询之间的关系,通常将子查询写在小括号内。子查询一般用在主查询的where子句或having子句中,与比较运算符或者逻辑运算符一起构成where筛选条件或having筛选条件。子查询分为“相关子查询”(Dependent Subquery)与“非相关子查询”。 非相关子查询如果子查询返回单个值,则可以讲一个表达式的值与子查询的结果进行比较。 例如,检索成绩比学生张三平均分高的所有学生及课程的信息...阅读全文

博文 2022-06-30 02:47:22 知乎

MyBatis 循环 Foreach

MyBatis 循环 Foreach拾柒_发布于 2020-07-09 Mybatis之foreach用法----List、Array、Map三种类型遍历 原文地址 在mybatis的xml文件中构建动态sql语句时,经常会用到标签遍历查询条件。特此记录下不同情况下书写方式!-------仅供大家参考------ 1. foreach元素的属性 collection: 需做foreach(遍历)的对象,作为入参时,list、array对象时,collection属性值分别默认用"list"、"array"代替,Map对象没有默认的属性值。但是,在作为入参时可以使用@Param(“keyName”)注解来设置自定义collection属性值,设置keyName后,list、array会失效; ...阅读全文

博文 2022-04-28 08:42:59 SegmentFault 思否

抽象语法树为什么抽象 - 云+社区

从具体到抽象 Abstract Syntax Tree抽象语法树(通常被简写成AST)实际上只是一个解析树(parse tree)的一个精简版本。在编译器设计的语境中,"AST" 和 "语法树"(syntax tree)是可以互换的。什么是解析树呢?我们知道一棵解析树是包含代码所有语法信息的树型结构,它是代码的直接翻译。所以解析树,也被成为具象语法树(Concret Syntax Tree, 简称CST);而抽象语法树,忽略了一些解析树包含的一些语法信息,剥离掉一些不重要的细节,所以它看起并不像解析树那么事无巨细,这也是AST名字中抽象一词的由来。在继续下一步之前,我们先统一一下文中的概念表达形式,以便更好的理解内容解析树 = Parse Tree = CST 抽象语法树 = Syntax ...阅读全文

博文 2022-06-10 08:47:31 腾讯云

迈向高级的Java面试突围课【网盘下载无密】

download:迈向高级的Java面试突围课本课采用大厂多轮面试形式贯穿主线,内容涵盖Java中高级面试的必考点、高频点、加薪点。同时融合讲师多年阿里字节考官经验,通过真实模拟不同面试场景,将面试每个环节和应对心得逐一讲解,助你突破自身瓶颈,超常发挥,顺利通过大厂面试。技术要求Java Web1年以上实际开发经验环境参数环境参数:JDK1.8、SpringBoot2.x 开发工具:Intelij IDEA20世纪90年代,硬件范畴出现了单片式核算机系统,这种价格低廉的系统一出现就当即引起了主动控制范畴人员的留神,由于运用它能够大起伏行进消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市场先机,在1991年景立了一个称为Green的项目小组,帕特里克、詹姆...阅读全文

博文 2021-01-16 21:03:24 jmterorh

byte[]与String互转不一致引起的bug_魔笛手CTO的博客

​​​公告:文章会第一时间发在微信公众号《魔笛手CTO》,欢迎关注 String s = "HelloWorld"; byte[] b = s.getBytes(); System.out.println(new String(b)); 看到上面的代码,可能有同学会问了,这不就是JAVA的基本操作吗,你老张有什么好讲的? 既然这样,老张要考考大家,猜一下下面的代码执行之后会输出怎样的结果。 public class Hello { public static void main(String[] args){ String src = "HelloWorld"; String dest = encrypt(src); System.out.printf("原来字符转为字节的长度为:%d\n"...阅读全文

博文 2022-03-27 06:11:18 CSDN博客_string转byte数组就变了

如何实现Java类隔离加载?

作者 | 肖汉松来源 | 阿里技术公众号一 什么是类隔离技术只要你 Java 代码写的足够多,就一定会出现这种情况:系统新引入了一个中间件的 jar 包,编译的时候一切正常,一运行就报错:java.lang.NoSuchMethodError,然后就哼哧哼哧的开始找解决方法,最后在几百个依赖包里面找的眼睛都快瞎了才找到冲突的 jar,把问题解决之后就开始吐槽中间件为啥搞那么多不同版本的 jar,写代码五分钟,排包排了一整天。上面这种情况就是 Java 开发过程中常见的情况,原因也很简单,不同 jar 包依赖了某些通用 jar 包(如日志组件)的版本不一样,编译的时候没问题,到了运行时就会因为加载的类跟预期不符合导致报错。举个例子:A 和 B 分别依赖了 C 的 v1 和 v2 版本,v2 版...阅读全文

博文 2022-03-23 12:55:27 阿里云开发者社区

JVM中的[Ljava.lang.Object; 究竟是什么意思? - 云+社区

你是不是经常看到控制台输出如题的日志,而似懂非懂的。今天我们就来介绍下这些L啦究竟是些什么东东。比如说我们经常看到这样的日志:[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;先来简单的说一下, "["表示数组,后面跟着的是具体的类型。这里我们再给出一个典型的例子来看看:(IDLjava/lang/Thread;)Ljava/lang/Object;这就是表示一个方法,方法有三个参数,类型分别为I,D,L。返回值类型为L。然后L类型要跟具体的类型,然后以"/"替换包名的".",L类型的要以“;”分号结尾。使用javap查看上代码,我们新建一个S类,然后通过javap就可以看到具体的类型了:package com.importso...阅读全文

博文 2022-06-09 08:04:41 腾讯云

使用nonce巩固接口签名安全_猿天地的技术博客_51CTO博客

前面我们有讲过如何进行API的安全控制,其中包括数据加密,接口签名等内容。详细可以参考我下面两篇文章:-《前后端API交互如何保证数据安全性》请添加链接描述-《再谈前后端API签名安全?》请添加链接描述在签名部分,通过时间戳的方式来判断当前请求是否有效,目的是为了防止接口被多次使用。但是这样并不能保证每次请求都是一次性的,今天给大家介绍下如何保证请求一次性?首先我们来回顾一些时间戳判断的原理:客户端每次请求时,都需要进行签名操作,签名中会加上signTime参数(当前请求时间戳)。HTTP请求从发出到达服务器的正常时间不会很长,当服务器收到HTTP请求之后,首先进行签名检查,通过之后判断时间戳与当前时间相比较,是否超过了一定的时间,这个时间我们可以自行决定要多长,比如1分钟,2分钟都可以,时...阅读全文

博文 2022-03-23 12:55:02 blog.51cto.com

Java —— 运行时栈帧结构_凶残的程序员的博客

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 概述 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构。它是虚拟机运行时数据区中的虚拟机栈的栈元素。 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。 每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机里面从入栈到出栈的过程。 在编译程序代码的时候,栈帧中需要多大的局部变量表,多深的操作数栈都已经完全确定了。 因此一个栈帧需要分配多少内存,不会受到程序运行期变量数据的影响,而仅仅取决于具体的虚拟机实现。 在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧,与这个栈帧相关联的方法称为当前方法。 局部变量表 我们在Java内存区域中在虚拟...阅读全文

博文 2022-03-23 12:54:48 CSDN博客_java 栈帧

Java实操避坑指南 业务代码-整合框架-存储-缓存常见错误详解

​Java实操避坑指南 业务代码-整合框架-存储-缓存常见错误详解 【点击下载】面试通过,却担心通不过试用期?明明认真做了,还是Bug满天飞?刚入行的Java开发者,总会遇到这样那样的坑。资深技术专家,调动多年经验,为你排除易出错、易被忽视、易被曲解的“坑”,根据业务需求流程,带你系统处理业务代码-整合框架-存储-缓存的常见错误,清扫知识误区。通过课程,让你对重点、难点和知识点理解更加的清晰和熟练,助力你升级打怪再上一个台阶!适合人群有Java实际开发经验,对排查Bug有困扰的Java开发者技术储备要求有实际开发经验。包括:Java Web实际开发经验 Spring、SpringMVC、SpringBoot、MySQL、Redis 实际使用基础百度网盘链接下...阅读全文

博文 2020-09-30 17:58:38 jmterorh

Java支付全家桶:企业级各类支付手段一站式解决方案

点击下载:Java支付全家桶:企业级各类支付手段一站式解决方案完整无密不久前新闻头条:《支付宝在2019年新增4亿行代码引热议》以及风投关注的宝典-《金融博览》指出:支付将迎来新的风口,两则消息均证明了:强如阿里,甚至风投都如此重视和关注支付领域,因此,学支付方能立于不败之地!Java企业级支付一站式解决方案(赠送超值配套电子书:http://dwz.date/aMfA)...1-1 Java企业级支付一站式解决方案试看第2章 学前准备学习并掌握微信、支付宝、银联三种支付方式的区别和差异,并且为开发支付程序搭建前后端分离的工程,创建数据库,安装好开发工具。2-1 主流支付渠道说明【企业级支付形式心中有数】试看2-2 带你配置开发环境2-3 搭建前端后端分离项目2-4 本章内容总结第3章 UN...阅读全文

博文 2020-07-30 01:27:03 jmterorh

Vue3+Django4全新技术实战全栈项目

### download:[Vue3+Django4全新技术实战全栈项目(https://www.zxit666.com/6467/) Vue3+Django4的前后端别离开发 什么是Vue3和Django4 Vue3是Vue.js的最新版本,它是一个用于构建用户界面的渐进式框架。Vue3提供了更好的性能、更好的开发体验、更好的组合才能和更多的新特性,例如Proxy响应式系统、Composition API、Teleport、Suspense等1。 Django4是Django的最新版本,它是一个用于快速开发Web应用的Python框架。Django4提供了许多功用,如ORM、路由、模板引擎、表单、用户认证、缓存、中间件等2。 为什么要运用Vue3+Django4 运用Vue3+Django...阅读全文

博文 2023-08-28 10:22:19 zxit666

蚂蚁集团智能可观测平台 HoloInsight 正式开源

今天,经过近一年的研发工作,很高兴和大家同步:HoloInsight 项目正式开源了代码主仓库的 GitHub 地址为:1.HoloInsight 介绍HoloInsight 是一款云原生时代的轻量化、全功能的智能可观测性技术平台。它是蚂蚁集团内部研发了近 10 年的观测平台 AntMonitor 的开源版本。经过多年大型互联网公司内部复杂场景的驱动,AntMonitor 在可观测领域沉淀了很多独特经验,是蚂蚁集团研发、测试、SRE 等人员进行故障应急处理和日常问题分析的重要平台。我们非常希望能将这些经验和业界进行共同探讨与共同演进,为此我们开源了 HoloInsight。HoloInsight 设计上是作为集数据采集、洞察分析、智能告警的一站式可观测综合解决方案,以帮助用户清晰观测整个软件...阅读全文

博文 2023-10-12 19:52:59 知乎

Kafka消费者 之 指定位移消费 - 腾讯云开发者社区

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。放弃不难,但坚持很酷~由于消费者模块的知识涉及太多,所以决定先按模块来整理知识,最后再进行知识模块汇总。今天学习一下消费者如何指定位移消费。一、auto.offset.reset值详解在 Kafka 中,每当消费者组内的消费者查找不到所记录的消费位移或发生位移越界时,就会根据消费者客户端参数 auto.offset.reset 的配置来决定从何处开始进行消费,这个参数的默认值为 “latest” 。auto.offset.reset 的值可以为 earliest、latest 和 none 。关于 earliest 和 latest 的解释,官方描述的太简单,各含义在真实情况如下所示:earliest :当各分区下存在已提交的 offs...阅读全文

博文 2023-02-24 02:19:34 腾讯云

【Java集合】想成为Java编程高手?先来了解一下List集合的特性和常用方法!

通过前面文章的介绍,相信大家对Java集合框架有了简单的理解,接下来说说集合中最常使用的一个集合类的父类,List 集合。那么,List到底是什么?它有哪些特性?又该如何使用呢?让我们一起来揭开List的神秘面纱。 List,顾名思义,就是列表的意思。在Java中,List是一个接口,它继承了Collection接口,表示一个有序的、可重复的元素集合。下面我们从List 接口的概念、特点和常用方法等方面来介绍List。 ## 一、List 接口介绍 java.util.List 接口,继承自 Collection 接口(可以回看咱们第二篇中的框架体系),List 接口是单列集合的一个重要分支,习惯性地将实现了List 接口的对象称为List集合。 ![image.png](http://st...阅读全文

博文 2023-11-15 17:01:34 YDYXCODE

技术大牛成长课,从0到1带你手写一个数据库系统-完结11章

参考地址1:https://pan.baidu.com/s/1N-x48vz9Z0peZdjOU5Gh-g 提取码: nxts 参考地址2:https://share.weiyun.com/Tp6ewDIJ 密码:6crcwd 关于数据库系统的开发一直以来都是一个难点,它的流程复杂,涉及到的技术点众多,特别在部署这块尤为重要,今天就带着大家手把手去实现这样一个数据库系统项目。 我将从理论结合实际场景综合性落地,让大家轻松吃透核心技术底层原理。 首先是应用场景这块:复用到日常开发场景中,如何运用高级数据结构、算法和设计模式,如何正确面对高并发进行编程,如何进行数据库的优化,如何理解数据库的执行计划分析慢SQL的原因等; 其次是原理剖析: 深度剖析数据库系统原理,将数据库几十年发展精髓拆解并呈现...阅读全文

博文 2023-11-29 17:32:10 feilipu2023nui

Actor模型是解决高并发的终极解决方案

写在开始一般来说有两种策略用来在并发线程中进行通信:共享数据和消息传递。使用共享数据方式的并发编程面临的最大的一个问题就是数据条件竞争。处理各种锁的问题是让人十分头痛的一件事。 传统多数流行的语言并发是基于多线程之间的共享内存,使用同步方法防止写争夺,Actors使用消息模型,每个Actor在同一时间处理最多一个消息,可以发送消息给其他Actor,保证了单独写原则。从而巧妙避免了多线程写争夺。和共享数据方式相比,消息传递机制最大的优点就是不会产生数据竞争状态。实现消息传递有两种常见的类型:基于channel(golang为典型代表)的消息传递和基于Actor(erlang为代表)的消息传递。Actor简介Actor模型(Actor model)首先是由Carl Hewitt在1973定义, ...阅读全文

博文 2023-02-02 04:03:37 知乎

React18内核探秘:手写React高质量源码迈向高阶开发

### download:[React18内核探秘:手写React高质量源码迈向高阶开发](https://www.zxit666.com/6529/) React是一个用于构建用户界面的JavaScript库,它提供了一种声明式的方式来创建组件,管理状态和处理数据。React的内部机制是如何实现的呢?本文将从以下几个方面来深入理解React的内部机制: JSX和元素 JSX是一种类似于XML的语法,可以在JavaScript中编写HTML标签,使得代码更直观和表达力强。JSX不是必须的,但是推荐使用,因为它可以提高开发效率和可读性。JSX需要通过Babel等工具进行转换,才能被浏览器识别和执行。 JSX的转换结果是一个React元素,它是一个用JavaScript对象来表示UI的结构和属性...阅读全文

博文 2023-09-02 07:35:35 zxit666

2024爆火AI最火Agent实战(打造你代理)

2024爆火AI最火Agent实战(打造你代理) 分享课程——2024爆火AI最火Agent实战(打造你代理),附源码+文档。 Agent,对于大多数人来说可能还不太熟悉。在大模型的语境下,Agent可以被理解为具备自主理解、规划和执行复杂任务能力的系统。 与AutoGPT、BabyAGI等技术演示项目相比,Agent的应用离真正商业化还有一段路要走。 然而,最近Agent的发展似乎迎来了第二轮爆发,尤其是在编程开发行业。一些热门的开源项目,比如Sweep,已经开始将Agent技术应用到实际场景中,实现自动化的bug报告和功能请求清扫。创业公司也在这一领域积极探索,例如OpenAI支持的Cursor代码编辑器,它能够生成整个项目框架的代码,让开发变得更加高效。 Agent的应用不仅局限于编程...阅读全文

博文 2024-01-15 17:26:56 haoighd6668