1、类加载子系统

在介绍类的加载过程之前,先看看类加载子系统的组成。

  • 类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。
  • ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。
  • 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)。
    Read more »

1、String类

  • String声明为final的,不可被继承。
  • String实现了Serializable接口:表示字符串是支持序列化的;实现了Comparable接口:表示String可以比较大小。
  • String内部定义了final char[] value用于存储字符串数据。
  • String:代表不可变的字符序列。简称:不可变性。
    • 当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值。
    • 当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值。
    • 当调用String的replace()方法修改指定字符或字符串时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值。
  • 通过字面量的方式(区别于new)给一个字符串赋值,此时的字符串值声明在字符串常量池中。
  • 字符串常量池中是不会存储相同内容的字符串的。
Read more »

1、枚举类

  • 当需要定义一组常量时,强烈建议使用枚举类。
  • 枚举类的实现
    • JDK1.5之前需要自定义枚举类。
    • JDK 1.5 新增的 enum 关键字用于定义枚举类。
  • 若枚举只有一个对象, 则可以作为一种单例模式的实现方式。
  • 枚举类的属性
    • 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰。
    • 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值。
    • 若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数。
Read more »

一、数组

1.1 数组的概述

  • 数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
  • 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
  • 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
  • 数组的长度一旦确定,就不能修改。
  • 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
  • 数组的分类:
    • 按照维度:一维数组、二维数组、三维数组、…
    • 按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)
      Read more »

一、基本语法

1.1 关键字和保留字

  • 关键字(keyword)的定义和特点:
    • 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。
    • 特点:关键字中所有字母都为小写。
Read more »

在springboot项目中经常会有上传和下载的需求,此文章主要讲述在springboot项目中可能应用到的文件知识!假设我们需要将一些文件保存到服务器并将其对应信息记录到数据库中,接着能够通过前端发送的请求对文件进行相应的上传、下载和删除工作。

一、本地服务器文件的上传、下载和删除

Read more »

一、zookeeper和kafka简介

(1)ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。
原文链接:https://blog.csdn.net/weijifeng_/article/details/79775738

在zookeeper的集群模式中,当超过半数的服务器正常运行时,整个集群才能够正常运行。如:当集群机器数量为3时,当一台服务器挂掉,正常运行的服务器数还有2台,集群依旧可以正常服务,再挂掉一台就不能正常服务了。

Read more »

1.下载相关软件

在elastic官网https://www.elastic.co/cn/下载elasticsearch、logstash、kibana以及filebeat的tar.gz压缩包,以及本示例用ELK集群所收集日志的nginx(http://nginx.org/en/download.html
),这里用的ELK以及filebeat的版本都为7.3.2,nginx的版本为1.16.1。nginx的安装过程:
下载完nginx压缩包后依次运行以下命令完成安装:

Read more »

部署之前需要在主机上安装docker以及docker-compose,教程查询百度!

一、配置mysql

1.新建目录docker-compose,里面将要放项目中所有的docker-compose配置文件。
2.在docker-compose目录下新建MysqlConfiguration文件夹(此文件夹将放所有的mysql配置文件),并在里面分别新建conf(存放mysql的自定义配置文件)、db(存放数据库表)、init(存放初始化脚本)文件夹,以及创建Dockerfile文件。
3.将my.cnf放进conf文件夹:
my.cnf的内容如下:

Read more »

一、安装nginx

Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务,所以nginx主要做反向代理、负载均衡以及HTTP服务器。

安装步骤:
1.apt-get命令安装

1
2
sudo apt-get update       //更新apt源
sudo apt-get install nginx //安装nginx
Read more »