Java

变量提升与暂时性死区

1. 变量提升 使用var申明变量的时候,不管变量的申明写在哪里,最后都会被提升到顶端去。 因此,我们可以先使用变量,在申明变量,却不会报错,只会输出undefined。 在函数中也是一样的,在函数内部申明的变量会被提升到函数作用域的顶端。 事实上,JS也是有编译阶段的,它和传统语言的区别在于,JS不会早早地把编译工作做完,而是一边编译一边执行。 在这个短暂的编译阶段里,JS 引擎会搜集所有的

【动态规划】【力扣357次周赛】6953. 判断是否能拆分数组

【力扣357次周赛】6953. 判断是否能拆分数组 给你一个长度为 n 的数组 nums 和一个整数 m 。请你判断能否执行一系列操作,将数组拆分成 n 个 非空 数组。 在每一步操作中,你可以选择一个 长度至少为 2 的现有数组(之前步骤的结果) 并将其拆分成 2 个子数组,而得到的 每个 子数组,至少 需要满足以下条件之一: 子数组的长度为 1 ,或者 子数组元素之和 大于或等于 m 。

k8s实战案例之运行Java单体服务-jenkins

1、jenkins架构 基于java命令,运⾏java war包或jar包,本次以jenkins.war 包部署⽅式为例,且要求jenkins的数据保存⾄外部存储(NFS或者PVC),其他java应⽤看实际需求是否需要将数据保存⾄外部存储。 从上述架构图可以看到,Jenkins通过k8s上的pv/pvc来连接外部存储,通过svc的方式向外暴露服务,在集群内部通过直接访问svc就可以正常访问到j

为什么不建议或不能用Executor去创建线程池?

答:会存在内存溢出的风险。因为Executors中的核心方法,默认创建线程池的最大线程数是Integer.MAX_VALUE即int类型的最大值2^32-1,最大线程数允许这么多,几乎相当于不限制线程数,而这样的后果就是,如果瞬间请求量非常大,如果达到这个上限,没有任何服务器能够继续工作,肯定会抛出OOM异常。 Executors核心的方法有五个: 1)Executors.newCachedThr

09 简易计算器,回顾组合与内部类

oop原则:组合大于继承 继承:class A extends B{} 组合:class A{public B b } 由面向过程逐步转变为面向对象 对象.方法 代码优化 使用组合 继续优化 使用内部类:最大的好处是,使得内部类可以随时方便地使用外部类的资源

记录一下 搭建springboot,springCloud,springCloudAlibaba,nacos

1,首先创建一个空项目 里面 有两个服务 一个提供者 一个调用者  2,父工程的使用依赖  以及springBoot的父依赖 然后在服务提供者(day_user_service)引用依赖    pom依赖 boorstrap配置信息 调用者(day_application)配置及依赖   bootstrap 简单

【JavaScript04】Object对象

对象(object)是 JavaScript 最重要的数据类型,也是JavaScript的核心内容。JavaScript 中一切皆对象,比如String、 Array、Date等对象。 在 JavaScript 中,对象是非常重要的,当你理解了对象,就可以了解 JavaScript 。 语法: 对象字面量的属性名可以加引号,也可以不加,建议不加 如果要使用一些特殊的名字,则必须加引号 以'{

前端黑魔法 —— 隐藏网络请求的调用栈

前言 浏览器网络控制台会记录每个请求的调用栈(Initiator/启动器),可协助调试者定位到发起请求的代码位置。 为了不让破解者轻易分析程序,能否隐藏请求的调用栈? 事件回调 事实上,使用之前 《如何让 JS 代码不可断点》 文中的方案,通过「内置回调」到「原生函数」,即可隐藏请求的调用栈: 点击页面任意位置即可产生网络请求,并且 Initiator 显示为 Other: 由于该方案依赖事

【JavaScript05】Object的序列化与反序列化

对象的序列化 当我们需要像后端传json字符串的时候,需将JavaScript的对象转成json格式,这个过程就是序列化。 如果我们需要把数据传到后端,是需要转成标准的json格式,后端才能正常的识别到。于是需把JavaScript的object对象转成json。最常用的是内置方法JSON.stringify(obj) 反序列化 后端通过接口给前端提供json数据,JavaScr

Redis 之分布式锁的实现

引言 分布式锁大家应该不陌生,在很多大厂面试的时候,面试官们都很喜欢问这个问题。 我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失。在单服务器系统我们常用本地锁来避免并发带来的问题,然而,当服务采用集群方式部署时,本地锁无法在多个服务器之间生效,这时候保证数据的一致性就需要分布式锁来实现。 实现

【JavaScript09】模板字符串(Template Strings)

前言 JavaScript 在ES6 新增了模板字符串(Template Strings)语法,其作用是可以在字符串中换行,以及将变量和表达式插入字符串。 模板字符串 模板字面量使用反引号 (``) 而不是单引号 ('') 或双引号 ("") 来定义字符串 示例:

单片机原理1:指令系统

电路结构:  P0,P1,P2,P3四个并行的IO口 P0口复用为低8位地址线和数据线 P1口复用为高8位地址线 P2口双向IO端口 P3口通信,中断等第二功能     指令:程序存储器中 从IO口读取数据前,必须先给IO拉高,全置为1(why?使内部的FET截止,再读入引脚的状态) 时钟电路与复位电路: 复位条件:RST引脚持续2微秒的高电平,电容起主要功能 不

从 Pulsar Client 的原理到它的监控面板

背景 前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。 虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,比如速率、流量、消费状态等信息。 但也有几个问题: 无法在应用维度查看他所依赖的所有 topic 的各种状态。 监控的信息还不够,比如发送/消费延迟、发送/消费失败等数据。 总之就是缺少一个全局的监控视角,通

核心api_JDBC_使用步骤总结

JDBC使用步骤总结 1. 注册驱动 2. 获取链接 3. 创建statement 4. 占位符赋值 5. 发送sql语句获取结果集 6. 查询结果解析结果集 7. 关闭资源 其中的几个问题 1.jdbc的概念 Java 数据库连接(Java Database Connectivity,简称 JDBC)是一种用于在Java应用程序中连接和操作数据库的API(应用程序编程接口)。它允

EQ-BDS面板使用iPanel教程

让EQ-BDS面板接入iPanel网页面板 0.更新面板到最新版本 1.下载iPanel_Host 去EQ面板网盘下载https://wwzv.lanzoue.com/b03j2esyb 密码:h3ik 下载iPanel_Host_2.1.7z 2.修改iPanel Host配置 解压后打开iPanel_Host_2.1setting.json,第四行password后面的双引号扩着的123456

8.6 周日

上午 学习java 下午 外出游玩 晚上 娱乐

【转载】Method Handle 与Java 反射调用性能对比

转自:https://dzone.com/articles/java-reflection-but-faster https://www.optaplanner.org/blog/2018/01/09/JavaReflectionButMuchFaster.html

深入理解并发编程艺术之内存模型

随着硬件技术的飞速发展,多核处理器已经成为计算设备的标配,这使得开发人员需要掌握并发编程的知识和技巧,以充分发挥多核处理器的潜力。然而并发编程并非易事,它涉及到许多复杂的概念和原理。为了更好地理解并发编程的内在机制,需要深入研究内存模型及其在并发编程中的应用。本文将主要以 Java 内存模型来探讨并发编程中 BUG 的源头和处理这些问题的底层实现原理,助你更好地把握并发编程的内在机制。 &nbs

第十节 多态练习

需求 分析 代码

对线程join()方法的理解

java线程的join()方法的理解 thread.join() 把指定的线程加入到当前线程,可以将两个交替执行的线程和并为顺序执行的线程。简单说就是同步。 例1:比如在线程B中调用了线程A的 join 方法,直到线程A执行完毕后,才会继续执行线程B。 例2:再比如我们做查询操作,总任务需要返回三个查询列表,那么主线程就需要等待这三个线程全部执行完并返回结果后才可以结束,这时就需要用到 jo

concurrent包的实现

concurrent包和atomic包都是线程安全的包,包下的类都是线程安全的类; 面试点:java有那些线程安全的类;     由于Java的CAS同时具有volatile读和volatile写的内存语义,因此Java线程之间的通信现在有了下面4种方式。     1)A线程写volatile变量,随后B线程读这个volatile变量。   &n

C++中BigEden、SmallEden编码

基本概念 大端小端表示,一个数字在内存中或硬盘上记录时,是高位在前或在后,高位在前就是大端(BigEden),在后就是小端(samllEden)。 我们日常记录和代码里定义一千二百三四如: int a = 1234; 就是大端记录。 如果是小端的一千二百三十四:就是"4321"了。   通常应用 一般而言,平台使用的大小端类型分别是: 小端:x86、ARM、win 大端:PowerPC

RequestId生成工具类,兼顾可读性和随机性

RequestId生成工具类,兼顾可读性和随机性 生成的id是这样的 这两个样例的requestId包括了日期、时间、一串随机数字和字母。可以使用以下格式来生成requestId: 日期(年月日):20230806 时间(小时分钟秒):0935 一串随机数字:013260 一个随机字母:E 一串随机字母和数字:345D142718AF524 以下是一个Java方法,可以生成这种格式的re

从read 系统调用到 C10M 问题

一.前言 从上个世纪到现在,工程师们在优化服务器性能的过程中,提出了各种不同的io模型,比如非阻塞io,io复用,信号驱动式io,异步io。具体io模型在不同平台上的实现也不一样,比如io复用在bsd上可以由kqueue实现,在solaris系统上可以由/dev/poll实现。为了实现系统的可移植性,POSIX 确保 select和poll在 unix-like系统上得到广泛的支持。 在上个世纪,

Java程序员的MacBookPro(14寸M1)配置备忘录

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 欣宸的月俸虽然很低,但还是咬着牙攒够银子,入手了最低配置的MacBook Pro 14(M1芯片,刘海屏,丐版),经过一段时间折腾,终于可以用来写代码和博客了,这里将设置过程记录下来作个备忘,主要有以下内容 开局必备工具 homebr

asp.net core 源代码阅读

阅读BCL(Base Class Library)和ASP.NET Core的源代码是一项挑战性的任务,但也是提升您对这些技术理解的有效方式。以下是一些步骤和建议,可以帮助您更好地阅读和理解源代码:1. 设置开发环境:确保您的开发环境已经准备就绪,包括安装了适当版本的.NET Core SDK、Visual Studio或其他适用的IDE。2. 下载源代码:从官方源代码仓库(如GitHub)或AS

linux内核移植步骤「建议收藏」

【说明:本文转载自如下地址】https://cloud.tencent.com/developer/article/2107681?areaSource=102001.3&traceId=I-X1VzDQ2XOPORi2lXiHa 大家好,又见面了,我是你们的朋友全栈君。   2016.6.8 经过一个多星期的内核折磨,今天终于可以写下自己移植内核的一些心得,网上有很多博客论坛都

"静态方法和实例方法" 这两种函数调用的区别

来看两段代码 第一段: public class RegexDemo { public static void main(String[] args) { func(); } private static void func() { String input = "123456"; boolean matches = inp

力扣-24. 两两交换链表中的节点

  题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。  = public static ListNode swapPairs(ListNode head) { if(head==null||head.next==null) return head

kafka_demo

参考: 概念:https://zhuanlan.zhihu.com/p/74063251 代码运用:https://zhuanlan.zhihu.com/p/114209326   启动zookeeper  启动kafka  创建topic,生产消息  能成功消费到消息  再用代码实现生产消费消息 Producer.java impor

<<  <  842  843  844  845  846  847  848  849  850  851  852  >  >>