接口 工程师 工程java

Java的深拷贝和浅拷贝的区别

一、拷贝的引入(1)、引用拷贝创建一个指向对象的引用变量的拷贝。 Teacher teacher = new Teacher("Taylor",26); Teacher otherteacher = teacher; System.out.println(teacher); System.out.p ......
拷贝 Java

Java中Elasticsearch 实现分页方式(三种方式)

目录 ES 简介 ES 的特点: 一、from + size 浅分页 二、scroll 深分页 scroll删除 三、search_after 深分页 ES 简介 Elasticsearch 是一个基于 Lucene 实现的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful ......
方式 Elasticsearch Java

浅谈服务接口的高可用设计

作为一个后端研发人员,开发服务接口是我正常不过的工作了,这些接口不管是面向前端HTTP或者是供其他服务RPC远程调用的,都绕不开一个共同的话题就是“高可用”,接口开发往往看似简单,但保证高可用这块实现起来却不并没有想想的那么容易,接下来我们就看一下,一个高可用的接口是该考虑哪些内容,同时文中有不足的... ......
接口

PowerUsageSummary.java源码分析

在在线网站http://androidxref.com/上对Android版本6.0.1_r10源码进行分析 官方手机的应用耗电排行具体实现位置在:/packages/apps/Settings/src/com/android/settings/fuelgauge/PowerUsageSummary ......
PowerUsageSummary 源码 java

BatteryStatsHelper.java源码分析

在分析PowerUsageSummary的时候,其实可以发现主要获取应用和服务电量使用情况的实现是在BatteryStatsHelper.java中 还是在线网站http://androidxref.com/上对Android版本6.0.1_r10源码进行分析 具体位置在 /frameworks/b ......
BatteryStatsHelper 源码 java

Java安全之JDBC Attacks学习记录

Java安全之JDBC Attacks 写在前面 很早就看到了Make JDBC Attacks Brilliant Again议题,一直想分析学习下,但是太懒。 MySQL 原理概述 "扩展参数" 就是本次导致安全漏洞的一个重要的部分。 Mysql JDBC 中包含一个危险的扩展参数: ”auto ......
Attacks Java JDBC

【Java复健指南15】链表LinkedList及其说明

链表LinkedList by Java 之前有写过一些记录(引用),但是忘了乱了,现在重新梳理一遍 链表是Java中List接口的一种实现 定义(引用) 链表(linked list)是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的. 链表由一系列结点(链表中 ......
LinkedList 指南 Java

接口突然超时10宗罪。。。

前言 不知道你有没有遇到过这样的场景:我们提供的某个API接口,响应时间原本一直都很快,但在某个不经意的时间点,却出现了接口超时问题。 也许你会有点懵,到底是为什么呢? 今天跟大家一起聊聊接口突然超时的10个原因,希望对你会有所帮助。 1.网络异常 接口原本好好的,突然出现超时,最常见的原因,可能是 ......
接口

C++11(列表初始化+变量类型推导+类型转换+左右值概念、引用+完美转发和万能应用+定位new+可变参数模板+emplace接口)

列表初始化 用法 在C++98中,{}只能够对数组元素进行统一的列表初始化,但是对应自定义类型,无法使用{}进行初始化,如下所示: // 数组类型 int arr1[] = { 1,2,3,4 }; int arr2[6]{ 1,2,3,4,5,6 }; // 自定义类型(C++98不支持下面这种初 ......
类型 变量 接口 概念 模板

Java开发学习(五十)----MyBatisPlus快速开发之代码生成器解析

1、代码生成器原理分析 造句: 我们可以往空白内容进行填词造句,比如: 在比如: 观察我们之前写的代码,会发现其中也会有很多重复内容,比如: 那我们就想,如果我想做一个Book模块的开发,是不是只需要将红色部分的内容全部更换成Book即可,如: 所以我们会发现,做任何模块的开发,对于这段代码,基本上 ......
生成器 MyBatisPlus 代码 Java

从Java开源项目中总结出的常见坏实践(Bad Practice)

一些开源项目包含了各种编程的最佳实践供人参考学习和借鉴。但是也有一些开源项目虽然初衷是好的。但是包含了一些代码的坏实践。特别是对于一部分刚入行的大学生来说,可能会给到一些错误的示范。于是在此列举一些项目中的坏实践。 1.方法的用意判断是与否却返回字符串的“0”或者“1” 如果一个方法明确返回是与否这 ......
Practice 常见 项目 Java Bad

Node.js躬行记(26)——接口拦截和页面回放实验

最近在研究 Web自动化测试,之前做了些实践,但效果并不理想。 对于 QA 来说,公司的网页交互并不多,用手点点也能满足。对于前端来说,如果要做成自动化,就得维护一堆的脚本。 当然,这些脚本也可以 QA 来维护,但前提是得让他们觉得做这件事的 ROI 很高,依目前的情况看,好像不高。 所以在想,做一 ......
接口 页面 Node js

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来 —— 感受来自Ehcache的强大实力

提到JAVA本地缓存框架,还有一个同样无法被忽视的强大存在 —— Ehcache!其官网直言不讳的将自己称为“JAVA中使用最广泛的缓存”,那么这份自信与实力从何而来?让我们一起解读下。 ......
Ehcache 缓存 实力 JAVA

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来2 —— Ehcache的各种项目集成与使用初体验

本篇一起实践下Ehcache的各种不同使用方式,来感受下Ehcache的强大与便利。比如独立集成使用,基于JCache方式使用,以及通过Springboot+JCache+Ehcache方式集成使用等。 ......
Ehcache 缓存 项目 JAVA

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来3 —— 本地缓存变身分布式集群缓存,打破本地缓存天花板

作为JAVA本地缓存综合实力天花板的Ehcache,还提供了对于集群能力的支持,这也使其不仅仅是个单机缓存,更是一个分布式缓存。本篇一起探讨Ehcache的各种集群方案。 ......
缓存 天花 分布式 集群 天花板

生产事故-错误密钥引发的接口通信问题

入职多年,面对生产环境,尽管都是小心翼翼,慎之又慎,还是难免捅出篓子。轻则满头大汗,面红耳赤。重则系统停摆,损失资金。每一个生产事故的背后,都是宝贵的经验和教训,都是项目成员的血泪史。为了更好地防范和遏制今后的各类事故,特开此专题,长期更新和记录大大小小的各类事故。有些是亲身经历,有些是经人耳传口授 ......
密钥 事故 接口 错误 问题

【Java】线程池梳理

【Java】线程池梳理 前言 线程池:本质上是一种对象池,用于管理线程资源。在任务执行前,需要从线程池中拿出线程来执行。在任务执行完成之后,需要把线程放回线程池。通过线程的这种反复利用机制,可以有效地避免直接创建线程所带来的坏处。 优点:1、降低资源的消耗。线程本身是一种资源,创建和销毁线程会有CP ......
线程 Java

【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理

finalize方法是什么 finalize方法是Object的protected方法,Object的子类们可以覆盖该方法以实现资源清理工作,GC在首次回收对象之前调用该方法。 finalize方法与C++的析构函数的区别 finalize方法与C++中的析构函数不是对应的,C++中的析构函数调用的 ......
原理 专题 Java 底层 finalize

Java基础类String学习分析

1 String不可变性 String类被声明为 final,因此它不可被继承。 内部使用char数组存储数据,该数组被声明为final,这意味着value数组初始化之后就不能再指向其它数组。 String内部没有改变value数组的方法 String类中所有修改String值的方法,如果内容没有改 ......
基础 String Java

Java关键词synchronized解读

特别说明: monitor在中文书籍有多种翻译,本文档统一使用:对象锁 | 书籍 | 中文翻译 | | | | | 《java编程思想(第4版)》 | 监视器、对象的锁 | | 《深入理解Java虚拟机(第3版)》 | 对象的锁 | | 《Java虚拟机规范(Java SE 8版)》 | 同步锁 | ......
synchronized 关键词 关键 Java

由char和byte的关系引申出去——总结一下java中的字符编码相关知识

由char和byte的关系引申出去——总结一下java中的字符编码相关知识 一、字符编码 手持两把锟斤拷,口中直呼烫烫烫 ​ 在文章伊始,先来复习一下计算机中关于编码的一些基础知识,着重理清以下几个基本概念。 1. 码点(code point) ​ 计算机只能以二进制的形式存储文字,故而计算机中每一 ......
字符 编码 知识 char byte

跟光磊学Java-Windows版Java8开发环境搭建

Java语言核心技术 如果想要开发Java程序/Java项目之前,必须要安装和配置JDK,这里的JDK表示Java8\JDK8,不过下载软件的时候,强烈推荐大家一定要去软件的官网下载,因为官网提供的软件版本是最新的,会修复旧版本遗留的问题,这样我们在使用软件时可以避免一些问题。 1. Windows ......
Java Java-Windows Windows 环境 Java8

跟光磊学Java-macOS版Java8开发环境搭建(基于Intel x86 64-bit)

Java语言核心技术 日常办公和软件开发除了可以使用Windows系统以外,还可以使用macOS系统,至于具体使用什么系统取决于你入职公司之后公司给你发的什么电脑,如果是MacBookPro那么就使用macOS开发项目,因此现在我们开始在macOS系统下搭建Java8的开发环境,如果你的Mac电脑使 ......
Java Java-macOS 环境 Intel macOS

详解JAVA线程问题诊断工具Thread Dump

摘要:Thread Dump是非常有用的诊断Java应用问题的工具。 本文分享自华为云社区《调试排错 - Java 线程分析之线程Dump分析》,作者:龙哥手记。 Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dum ......
线程 工具 Thread 问题 JAVA

用Dockerfile制作一个java应用镜像,ubuntu基础篇

内容介绍: (1) 本章目的,将一个自行开发的java程序webpay-api,制作为docker自定义镜像,并且进行部署。 (2) 实验环境: 物理机:VMware 虚拟机 + CentOS 7.8 x64 Docker:Docker version 20.10.17, build 100c701 ......
Dockerfile 镜像 基础 ubuntu java

Java集合 - HashMap

本篇文章介绍 Java 集合中的 HashMap。 1、HashMap 的底层存储结构; 2、HashMap 的新增操作的处理逻辑; 3、HashMap 的数组扩容机制; 4、HashMap 的查询操作的处理逻辑; ......
HashMap Java

前端工程化筑基-Node/npm/babel/polyfill/webpack

前端搬砖框架:开发 ⇨ 构建 ⇨ 部署上线 ⇨ 摸鱼。本文对前端工程中的基本组件,如Node.js,npm,babel,polyfill,webpack等框架用图形化、简洁的语言进行了简单的介绍。 ......
前端 polyfill webpack 工程 babel

5个接口性能提升的通用技巧

前言 作为后端开发人员,我们总是在编写各种API,无论是为前端web提供数据支持的HTTP REST API ,还是提供内部使用的RPC API。这些API在服务初期可能表现不错,但随着用户数量的增长,一开始响应很快的API越来越慢,直到用户抱怨:“你的系统太糟糕了。” 我只是浏览网页。为什么这么慢 ......
接口 性能 技巧

Triple 协议支持 Java 异常回传的设计与实现

作者:Apache Dubbo Contributor 陈景明 背景 在一些业务场景, 往往需要自定义异常来满足特定的业务, 主流用法是在catch里抛出异常, 例如: public void deal() { try{ //doSomething ... } catch(IGreeterExcep ......
Triple Java

正确理解和使用JAVA中的字符串常量池

前言 研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存。它也被称为String Intern Pool或String ......
常量 字符串 字符 JAVA