目录

呱呱

充满了声音和狂热,里面空无一物。

类加载器子系统与SPI 有更新!

类加载器 JVM中有两种类型的类加载器,由C++编写的及由Java编写的。除了启动类加载器(Bootstrap Class Loader)是由C++编写的,其他都是由Java编写的。由Java编写的类加载器都继承自类java.lang.ClassLoader。 JVM还支持自定义类加载器。后面会将。 各种类加载器之间存在着逻辑上的父子关系,但不是真正意义上的父子关系,因为它们直接没有从属关系。 启动类加载器 因为启动类加载器是由C++编写的,通过Java程序去查看显示的是null 因此,启动类加载器无法被Java程序调用 启动类加载器不像其他类加载器有实体,它是没有实体的,JVM将C++处理类加载的一套逻辑定义为启动类加载器 查看启动类加载器的加载路径 URL[] urLs = Launcher.getBootstrapClassPath().getURLs(); for (URL urL : urLs) { System.out.println(urL); } 也可以通过-Xbootclasspath指定 从openjdk源码 int JNICALL JavaMain(void ......

事故

起因 目前公司数据库全部部署在一台服务器上(就叫S1吧)(主要是正式库和测试库),导致目前服务器磁盘压力太大,领导提出,将测试库与正式库分离,将测试库迁移到另一台服务器(S2)。 操作 梳理S1上所有的测试库,像同事询问他们的测试库,然后将所有的测试库备份,之后还原到S2上面,之后协调同事进行测试。测试完毕之后再S1上进行操作,干掉所有测试库。期间处于谨慎七月低到八月中旬,一直再以各种方式再群里或者私聊和同事进行沟通,知道所有的测试走完之后再溜了大概一周多的时间进行测试。 数据库命名 由于刚到新公司不久,对应各种数据库还不是特别清楚。 像同事询问过程中总结出: 正式库命名:DP_库名; 测试库命名:T_DP_库名; 帖个图吧 事故 9月2号,正式对S1的测试库进行删除,之后,平平无奇的到了今天,然后同事开始找我,说数据库有问题。 客户访问出现问题,系统崩溃,之后看到是因为删掉的一个T开头的库,然后黑人问号???当初跟我讲好的是测试库可以删,现在??? 没办法还好有备份,然后还原、测试,解决。 反思 1,沟通不到位。 2,干掉测试库之前没有好好和同事沟通。 3,公司测试库和正式库表.......

健康

关于意外。 昨天坐公交上班,马上下车了,我同车一同事突然晕倒了,起初以为是低血糖,然后就把他送到了医院,心电图一查,初步诊断是心室复级综合症。之后还好做了个心脏彩超,没啥大问题,今天又带他做了个 24 小时动态心电图,周五出结果。 关于诱因。 医生原话:太瘦了,心脏供血不足,血压 90\70,一个成年男性血压应该在 120\90 这样子,熬夜导致心脏压力太大,不吃早餐血糖低,往后少熬夜注意锻炼。 关于警示。 兄弟们多多少少有不吃早饭的习惯吧,注意身体啊兄弟们,勤加锻炼身体才是革命的本钱啊,你要没有好的身体怎么给老板换大奔啊。

K8S-1

K8S学习 安装步骤 Kubernetes快速实战与核心原理剖析.zip 遇到的问题 启动之后长时间处在noready状态,查看日志报错: journalctl -f -u kubelet NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized 处理方法: kubectl get pod -n kube-system 发现fiannel没有跑起来。 干掉fiannel和coredns: kubectl delete pod kube-flannel-ds-clld5 -n kube-system 干掉之后状态成ready了 还有一个问题: 我K8S起来时没有注意SWAP分区导致报错 1 2 [ERROR Swap]: running with swap on is not supported. Please disable swap [preflight] If you know what yo....

Linux相关命令(部分)

命令功能说明 线上查询及帮助命令 (2 个) man查看命令帮助,命令的词典,更复杂的还有 info,但不常用。 help查看 Linux 内置命令的帮助,比如 cd 命令。 文件和目录操作命令 (18 个) ls全拼 list,功能是列出目录的内容及其内容属性信息。 cd全拼 change directory,功能是从当前工作目录切换到指定的工作目录。 cp全拼 copy,其功能为复制文件或目录。 find查找的意思,用于查找目录及目录下的文件。 mkdir全拼 make directories,其功能是创建目录。 mv全拼 move,其功能是移动或重命名文件。 pwd全拼 print working directory,其功能是显示当前工作目录的绝对路径。 rename用于重命名文件。 rm全拼 remove,其功能是删除一个或多个文件或目录。 rmdir全拼 remove empty directories,功能是删除空目录。 touch创建新的空文件,改变已有文件的时间戳属性。 tree功能是以树形结构显示目录下的内容。 basename显示文件名或目录名。 dirname......

SQL Server相关权限

数据库角色的成员可以分为如下几类: 1、Windows用户组或用户账户 2、SQL Server登录 3、其他角色 SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类: 1、固定服务器 2、固定数据库 3、用户自定义 4、固定服务器 由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。下表列出了所有现有的固定服务器角色。 固定服务器角色 说 明 sysadmin执行SQL Server中的任何动作 serveradmin配置服务器设置 setupadmin安装复制和管理扩展过程 securityadmin管理登录和CREATE DATABASE的权限以及阅读审计 processadmin管理SQL Server进程 dbcreator创建和修改数据库 diskadmin管理磁盘文件 下面两个系统过程用来添加或删除固定服务器角色成员: sp_addsrvrolemember sp_dropsrvrolemember 注意:您不能添加、修改或....

从JDK方向看一下JVM类加载机制

类加载运行全过程 我们用Java命令运行某个类得main函数启动程序时,首先需要通过类加载器把主类加载到JVM中。 public class Math { public static final int initData = 666; public static User user = new User(); public int compute() { //一个方法对应一块栈帧内存区域 int a = 1; int b = 2; int c = (a + b) * 10; return c; } public static void main(String[] args) { Math math = new Math(); math.compute(); } } 通过Java命令执行代码的大体流程如下: 其中loadClass的类加载过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用&....

分布式理论--CAP

分布式理论--CAP 1,什么是CAP理论? CAP理论是指在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),这三个要素最多只能实现两点,不可能三点兼顾。 额。。。图有点烂,,但还能看 2,为什么分布式系统不能同时满足系统一致性和可用性? 分布式系统与单片机不同,他设计到多节点之间的通信和交互,节点间的分区故障是必然发生的,所以在分布式系统中分区容错性(P)是必须考虑的。要么选中一致性(C),缺保数据正确;要么选择可用性(A),保证服务可用。 当选择了一致性(C)的时候,一定会读到最新的数据,不会读到旧数据,但如果因为消息丢失、延迟过高发生了网络分区,那么这个时候,当集群节点接收到来自客户端的读请求时,为了不破坏一致性,可能会因为无法响应最新数据,而返回出错信息。 当选择了可用性(A)的时候,系统将始终处理客户端的查询,返回特定信息,如果发生了网络分区,一些节点将无法返回最新的特定信息,它们将返回自己当前的相对新的信息。 3,如何理解数据一致性? 数据一致性模型可以分为强一致性和弱一致性。在.....

JVM底层之类加载

JVM底层之类加载 klass模型 Java的每个类,在JVM中,都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息…… 看下klass模型类的继承结构 从继承关系上也能看出来,类的元信息是存储在原空间的 类加载器将.class文件加载进系统 将.class文件解析,生成的就是InstanceKlass MetaspaceObj JDK8以后类的元信息都是存储在类的元空间里的就是MetaspaceObj 是所有类的顶层父类。 InstanceKlass InstanceKlass就是我们写的Java类(非数组),InstanceKlass就是类加载器把Java文件存储到内存中经过解析后生成的。 InstanceKlass包含的一些属性:注解 _annotations、__method.. 普通的Java类在JVM中对应的是instanceKlass类的实例,再来说下它的三个子类 InstanceMirrorKlass:用于表示java.lang.Class,class对象(就是我们所说的堆区就是存储在这里)Java代码中获取到的Cl....

SpringCloud学习之路->2->创建一个服务消费者模块

创建一个New Project 首先准备好环境配置:JDK8+MySQL+Maven 之后创建一个名为cloud的项目: 下一步: 创建完成: 父工程POM 导入pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.giles.springcloud</groupId> <artifactId>cloud</artifactId> <vers.......

SpringCloud学习之路->1->理论篇

Springcloud概述 废话不多说直接上图: 一句话简单来说就是SpringCloud是一个一站式分布式微服务架构,包含许多常见的设计模式,如:集群管理、段落其、路由发现、分布式会话等等。 SpringCloud特性: 简单来说SpringCloud特性包含: 分布式配置; 服务注册、服务发现; 路由; 服务通信; 负载均衡; 断路器; 分布式锁; 消息传递; SpringCloud约定配置: SpringCloud的版本不想SpringBoot那样以数字命名,而是以伦敦地铁站来命名的,并由地铁站字母名称A-Z类推的形式来发补贴带版本,目前更新到H版。 以上皆来自SpringCloud官方 ,详细请看那里,这篇博客作为连载吧,时间允许的话五天更新一波~~~

Java基础面试题

面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。 缺点: 没有面向对象易维护、易复用、易扩展 面向对象 优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点: 性能比面向过程低 Java语言的特点 简单易学; 面向对象(继承、封装、多态) 平台无关性(Java虚拟机) 可靠、安全 多线程(Java提供多线程) JDK、JVM、JRE解释 JVM Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux、macOS),目的是使用相同的字节码,它们都会给出相同的结果。

Mybatis-plus实现自动填充

环境 JDK1.8.0_251+MySql5.7.22+maven-3.6.3+MybatisPlus3.0.5+SpringBoot2.2.2 实现步骤 创建一个数据库命名为mybatis_plus,创建一张表为user表: DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (id) ); 添加数据: DELETE FROM user; INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@ba......

idea链接MySQL的问题:Server returns invalid timezone. Need to set 'serverTimezone' property.

环境 Idea2020.2.1+JDK8+MySql5.7.22 问题 链接MySQL时报错:Server returns invalid timezone. Need to set 'serverTimezone' property. 解决办法 打开控制面板输入mysql -uroot -p输入密码进入MySQL 之后输入show variables like'%time_zone';查看时区: 显示SYSTEM就是代表还没有设置时区, 之后输入set global time_zone = '+8:00';设置时区时间: 重新连接数据库显示如下: 这样设置的话mysql服务重启后时区设置就会失效,建议修改MySQL安装目录下的my.ini文件下添加: default-time_zone='+8:00'

MySQL基础

了解SQL 数据库基础 什么是数据库 数据库简单来说就是一个以某种形式、有组织的方式 存储的数据集合。可以将其看成一个文件柜。 数据库(database) 保存有组织的数据的容器(可以看成一个文件或者是一个组织) 表 当你将资料放入的文件柜中,并不是将它们随便放入到某个抽屉中就完事了,而是将他们放入到文件夹中再放到文件柜中去。 在数据库领域中我们将其称之为表。表示一种结构化的文件,用来存储某种特定类型的数据。 表 是某种特定类型数据的结构化清单 数据库中每个表都是有名字的并且这个名字具有唯一性。 列和数据类型 表由列组成。列中存储着表中的某部分数据。 列 是表中的一个字段,所有的表都是由一个或者多个列组成的。 简单的理解列就像一个excel表格每一列存储着不同的数据,而这个excel就可以称之为表 数据类型(datatype) 所容许的所有的数据类型。每个表和列都有相对应的数据类型,它限制该列中的存储数据。 数据类型可以限制存储在列中的数据类型,数据类型还可以帮助排序,在优化磁盘使用方面提供了极大的帮助。 行 表中的数据是按行保存的,所保存的每一个记录存储在自己的行内。 主键 表中的每....

Java面向对象

面向对象概念 1使用对象的关系来描述事物之间的联系,这种思想就是面向对象。 2面向对象的特点主要为继承性、封装性和多态性。 3对象就是存在的具体实体,具有明确定义的属性和方法。 4类是具有相同属性和共同方法的一组对象的集合。 5类是创建对象的模板,类声明的变量就是对象。通过new关键字来实例化对象。 6·使用操作符“.”来访问对象的属性和方法。 继承 Java中使用extends关键字来表示继承关系; java.lang.Object类是所有Java类的父类 类只支持单继承,不允许多重继承。(支持多层继承) 多个类可以继承一个父类。 在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类。 关键字 extends 继承 super 超类,父类,基类 使用super关键字调用父类的成员变量和方法, 使用super关键字调用父类的构造方法的时候,super()必须要写在方法体的第一行,只能出现一次。 只能在构造方法中使用super或者this调用其他的构造方法,不能在成员方法中使用。 class Person { public Person() { } } class Man....

Java基础

Java程序运行: 1,首先呢打开记事本创建一个.java文件; 2,在Java文件中输入: public class Hello{ public static void main(String[] args){ System.out.println("hello world!!"); } } 3,使用命令提示符到你文件目录下运行.Java文件,会生成一个.class文件; 4,运行.class文件会出现以下效果,至此一个简单的Java程序就完成啦。 5 注意哪些地方 (1) 修改系统设置,显示文件后缀名,重命名后的文件一定是.java结尾的 (2) 涉及到的符号要用英文半角的 (3) 有public class的时候,文件名要和公共类的类名要一致,首字母大写 (4) 打开文件路径时,不同盘符要切换盘符 (5) 运行的时候不带扩展名 java Hello 注意!!运行.class文件是一定要把后缀名去掉!! 以上运行效果需要装jdk并且配置jdk环境!! Java严格区分大小写!! 个人认为初学的时候就应该多遇到点问题,坑踩得多了也就不怕坑了 注释 /* 1.Java规范的三种注.......