自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 ClassLoader#getResource和Class#getResource

ClassLoader#getResource(String name)ClassLoader使用双亲委派模型去查找文件资源,先Bootstrap,再ExtClassLoader,最后AppClassLoader,返回的是target/classes或者target/test-classespublic URL getResource(String name) { URL url; if (parent != null) { url = parent.getResou.

2020-12-27 22:15:21 201

原创 ClassLoader加载项目下的资源文件

Bootstrap、ExtClassLoader、AppClassLoader首先先要知道三种类加载器的作用。启动类加载器(Bootstrap)启动类加载器是C++实现的,负责将<JAVA_HOME>/lib路径下的核心类库或-Xbootclasspath参数指定的路径下的jar包加载到内存中,出于安全考虑,Bootstrap只加载包名为java、javax、sun等开头的类##扩展类加载器(ExtClassLoader)ExtClassLoader是Java实现的,是sun.misc

2020-12-27 22:12:10 1366 3

原创 js判断变量是否是数字

经过函数parseInt()和parseFloat()处理的参数parseInt和parseFloat转换非数字,不会报错,输出的参数是NaN,我们不能使用typeof等方式判断参数是否是数字,只能通过isNaN()函数判断是否是非法数字。isNaN():判断函数是否是一个非法数字。返回true表示非法数字,返回false表示是合法数字直接声明的参数和没有经过函数parseInt()和parseFloat() 处理的参数function isNumber(value) { let numb..

2020-12-27 17:34:18 1056

原创 k8s Service配置多个端口

ServiceapiVersion: v1kind: Servicemetadata: name: xxx namespace: openspec: type: NodePort ports: - name: tcp port: 8888 targetPort: 8888 nodePort: 8888 protocol: TCP - name: http port: 8080 targetPort: 8080 nodeP

2020-12-27 17:18:59 9979

原创 k8s配置容器的环境变量可以直接使用Java获取或Spring的@Value获取

apiVersion: apps/v1kind: Deploymentmetadata: name: xxx-dev namespace: openspec: replicas: 1 selector: matchLabels: name: xxx strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 template: metadata: label

2020-12-27 17:14:00 2886

原创 k8s port、nodePort、targetPort

apiVersion: v1kind: Servicemetadata: name: ServiceNmae namespace: openspec: type: NodePort ports: # kubectl get svc 输出的端口是 port:nodePort,nodePort是对外访问的端口,port是k8s集群内部访问的端口 # 通过ingress配置的host加nodePort端口可以访问接口 - port: ServicePort

2020-12-27 17:06:16 414 1

原创 Java实现自旋锁、独占锁和共享锁

简述AQS全称AbstractQueueSynchronizer,在java.util.concurrent.locks包下,是构建锁和其他同步器的框架,它的定位是能够成为实现大部分同步需求的基础。Java中基于AQS的有ReentrantLock、Semaphore、读写锁、CountDownLatch等。同步器内部维护一个volatile的int类型的成员变量表示同步状态,主要使用方式是通过子类继承同步器,实现它的抽象方法(try开头的方法)来管理同步状态。在同步器的内部提供了一个FIFO双向队列完

2020-12-18 23:13:20 302 1

原创 Java每次添加元素生成树

Node:public class Node { public Node(String name, Integer id, Integer pid) { this.name = name; this.id = id; this.pid = pid; } private String name; private Integer id; private Integer pid; public String getN

2020-12-12 22:37:38 150

原创 Java使用cmd调用nodejs脚本

简述本博客不是讲使用Java提供的js脚本引擎编写js脚本,而是业务需要,本地模拟http请求动态调用nodejs脚本(本地测试openfaas函数编程,模拟http请求调用nodejs函数)虽然Java有提供执行js脚本的执行引擎,但是在使用时,并不是那么好用,所以测试时使用cmd调用nodejs。代码需求:调用nodejs并传参数Java:String json = "{\"name\":\"yz\"}";json = JSON.toJSONString(json);try {

2020-12-12 22:10:08 2909

原创 Linux ps命令查看进程运行时长

ps命令默认输出格式只包含PID、USER、TIME、COMMAND,不包含进程运行时长和进程cpu使用时长的,如果想输出这些参数,需要重写ps输出格式。ps -o重写输出格式例如要查看pid、进程运行时长、进程使用cpu时长、进程启动命令、进程状态等参数ps -o pid,etime,comm,user,time,stat或者ps -o pid -o etime -o comm -o user -o time -o statetime是进程启动的时间到此刻的时间的差值time是cpu真正

2020-12-12 21:52:41 3049 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除