
学习笔记
文章平均质量分 71
Xqhardstudy
这个作者很懒,什么都没留下…
展开
-
JVM-第九章:方法区
前言这次所讲述的是运行时数据区的最后一个部分从线程共享与否的角度来看ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理栈、堆、方法区的交互关系下面就涉及了对象的访问定位Person:存放在元空间,也可以说方法区person:存放在Java栈的局部变量表中new Person():存放在Java堆中方法区的理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集转载 2021-05-06 22:19:35 · 190 阅读 · 0 评论 -
JVM-第八章:堆
堆的核心概述内存细分设置堆内存大小与OOM年轻代与老年代图解对象分配过程Minor GC Major GC Full GC堆空间分代思想内存分配策略为对象分配内存:TLAB小结堆空间的参数设置堆是分配对象的唯一选择吗...转载 2021-05-05 20:38:11 · 165 阅读 · 0 评论 -
JVM-第七章:本地方法栈
Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackoverflowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个outofMemoryError异常。本转载 2021-05-04 21:18:18 · 135 阅读 · 0 评论 -
JVM-第六章:本地方法接口
什么是本地方法为什么要使用Native Method?本地方法栈转载 2021-05-04 21:15:41 · 143 阅读 · 0 评论 -
JVM-第五章:虚拟机栈
虚拟机栈概述背景内存中的堆与栈基本内容面试题:开发中遇到的异常有哪些栈的存储单位栈中存储什么?栈运行原理栈帧的内部结构局部变量表关于Slot的理解静态变量和局部变量的对比操作数栈代码追踪...转载 2021-05-04 21:10:23 · 194 阅读 · 0 评论 -
JVM-第四章:程序计数器
PC Register介绍oracle官网->download->java->jdk->specifications作用举例说明两个常见问题使用PC寄存器存储字节码指令地址有什么用呢?转载 2021-05-02 22:09:33 · 150 阅读 · 0 评论 -
JVM-第三章:运行时数据区概述及线程
线程转载 2021-05-02 22:01:10 · 162 阅读 · 0 评论 -
JVM-第二章:类加载子系统
内存结构概述完整图如下如果自己手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎类加载子系统类加载子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是转载 2021-05-02 21:54:22 · 140 阅读 · 1 评论 -
Git-第四,五章:Git团队协作机制,GitHub操作
第四章 Git团队协作机制4.1 团队内协作4.2 跨团队协作第五章 GitHub操作5.1 创建远程仓库5.2 远程仓库操作命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地原创 2021-04-30 15:57:30 · 199 阅读 · 1 评论 -
Git-第四章:Git分支操作
4.1 什么是分支?在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)4.2 分支的好处同时并行推进多个功能开发,提高开发效率。各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。4.3 分支的操作命.原创 2021-04-30 14:55:50 · 281 阅读 · 0 评论 -
Git-第二章:Git常用命令
第二章 Git常用命令命令名称作用git config --global user.name用户名 设置用户签名git config --global user.email邮箱 设置用户签名git init初始化本地库git status查看本地库状态git add 文件名添加到暂存区git commit -m “日志信息” 文件名提交到本地库git reflog查看历史记录git reset --hard 版本号版本穿梭原创 2021-04-30 11:45:10 · 133 阅读 · 0 评论 -
Git-第一章:Git概述
第一章 Git概述Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具1.1 何为版本控制版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。1.2原创 2021-04-30 11:02:29 · 381 阅读 · 1 评论 -
Linux面试题(待补全)
问题一分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯)http://192.168.200.10/index1.htmlhttp://192.168.200.10/index2.htmlhttp://192.168.200.20/index1.htmlhttp://192.168.200.30/index1.htmlhttp://192.168.200.40/index1.htmlhttp://192.168.200.30/order.htmlh原创 2021-04-25 11:28:21 · 180 阅读 · 0 评论 -
Redis的复制(Master/Stave)
是什么行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主能干嘛读写分离容灾恢复怎么玩配从库不配主库从库配置:slaveof 主库IP 主库端口每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件Info replication修改配置文件细节操作拷贝多个redis.conf文件开启daemonize yesPid文件名字指定端口Log文件原创 2021-04-24 19:33:16 · 140 阅读 · 0 评论 -
Redis的发布订阅
是什么进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接受消息订阅/发布消息图下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:命令序号命令描述1PSUBSCRIBE pattern [pattern…]订阅一个或多个符合给定模式的频道2P原创 2021-04-24 16:41:30 · 98 阅读 · 0 评论 -
Redis的事务
是什么可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞.redis事务能干吗一个队列中,一次性,顺序性,排他性地执行一系列命令怎么玩常用命令序号命令描述1discard取消事务,放弃执行事务块内地所有命令2exec执行所有事务块内的命令3multi标记一个事务块的开始4unwatch取消WATCH 命令对所有key的监视5watch key [key…]原创 2021-04-24 16:24:11 · 93 阅读 · 0 评论 -
Redis的持久化
RDB(Redis DataBase)是什么?在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件里,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效.RDB的缺点是最后一次原创 2021-04-22 21:56:14 · 105 阅读 · 0 评论 -
Redis配置文件
解析配置文件 redis.conf它在哪地址cd /opt/redis-3.0.4拷贝出来单独备份Units单位# Redis configuration file example# Note on units: when memory size is needed, it is possible to specify# it in the usual form of 1k 5GB 4M and so forth:## 1k => 1000 bytes# 1kb =>原创 2021-04-22 15:10:41 · 173 阅读 · 0 评论 -
Redis数据类型
Redis的五大数据类型String(字符串)String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个valueString类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512MHash(哈希,类似java里的map)Redis hash是一个键值对集合Redis hash是一个string类型的fiel原创 2021-04-21 21:46:28 · 101 阅读 · 0 评论 -
Redis入门
一、入门概述1.是什么Redis: REmote DIctionary Server(远程字典服务器)是一个完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器Redis与其他key-value缓存产品有以下三个特点Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用Redis不仅仅支持简单的key-原创 2021-04-21 16:37:08 · 94 阅读 · 0 评论 -
Linux可视化管理(webmin和bt运维工具)
webmin基本介绍Webmin是功能强大的基于Web的Unix/linux系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的的管理操作.除了个版本的linux以外还可用于:AIX,HPUX,Solaris,Unixware,Irix和FreeBSD等系统安装webmin && 配置bt(宝塔)基本介绍bt宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等多项服务器管理功能安装和原创 2021-04-21 11:59:55 · 1083 阅读 · 0 评论 -
linux系统(备份与恢复)
基本介绍实体机无法做快照,如果系统出现异常或者数据损坏,后果严重,要重做系统,还会造成数据丢失,所以我们可以使用备份和恢复技术linux的备份和恢复很简单,有两种方式把需要的文件(或者分区)用TAR打包就行,下次需要恢复的时候,再解压开覆盖即可使用dump和restore命令安装dump和restore如果linux上没有 dump 和 restore 指令,需要先按照yum -y install dumpyum -y install restore使用dump完成备份基本介绍du原创 2021-04-21 10:36:55 · 240 阅读 · 0 评论 -
Linux高级篇(定制自己的Linux系统)
基本介绍通过裁剪现有的Linux系统(CentOS7.6),创建属于自己的 min Linux小系统,可以加深我们对linux的理解基本原理启动流程介绍:制作Linux小系统之前,再了解一下Linux的启动流程首先Linux要通过自检,检查硬件设备有没有故障如果有多块启动盘的话,需要在BIOS中选择启动磁盘启动MBR中的bootloader引导程序加载内核文件执行所有进程的父进程,老祖宗systemd欢迎界面在Linux的启动流程中,加载内核文件时的关键文件:1)kernel文件原创 2021-04-20 19:42:25 · 346 阅读 · 0 评论 -
Linux高级篇(日志管理)
基本介绍(1)日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息,系统的启动信息,系统的安全信息,邮件相关信息,各种服务相关信息等(2)日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时,攻击者留下的痕迹(3)日志是用来记录重大事件的工具系统常用日志/var/log/ 目录就是系统日志文件的保存位置日志管理服务 rsyslogdCentOS7.6日志服务是 rsyslogd , CentOS6.x日志服务是sy原创 2021-04-20 15:56:32 · 193 阅读 · 0 评论 -
Linux-javaEE定制篇(搭建JavaEE环境)
概述如果需要在Linux下进行JavaEE的开发,我们需要安装如下软件安装JDK安装步骤tomcat安装idea安装mysql5.7安装新建文件夹/opt/mysql,并cd进去运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包PS:centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。运行tar -xvf mysql原创 2021-04-19 15:24:35 · 282 阅读 · 0 评论 -
Linux实操篇(RPM和YUM)
rpm包的管理介绍rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中.它生成具有.RPM扩展名的文件.RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的Linux的分发版本都有采用(suse,redhat,centos等等),可以算是公认地行业标准了.rpm包地简单查询指令查询已安装的rpm列表 rpm -qa|grep xxrpm包名基原创 2021-04-19 14:27:10 · 163 阅读 · 0 评论 -
Linux实操篇(进程管理)
基本介绍在Linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号(pid,进程号)=> windows => linux每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但屏幕上无法看到此进程。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。显示系统执行的进程基本介绍ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况,可以不加任何参数ps详解ps -原创 2021-04-19 11:16:25 · 379 阅读 · 0 评论 -
Linux实操篇(网络配置)
Linux网络配置原理图画出原理图,帮助理解原创 2021-04-18 15:14:24 · 174 阅读 · 0 评论 -
Linux实操篇(Linux分区,挂载)
Linux分区原理介绍Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分Linux采用了一种叫"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的储存空间在一个目录下获得。硬盘说明Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘对于IDE硬盘,驱动器标识符位"hdx~",其中"hd"表明分区所在原创 2021-04-17 20:16:30 · 157 阅读 · 0 评论 -
Linux实操篇(定时任务调度)
crond 任务调度基本介绍crontab 进行 定时任务的设置概述任务调度:是指系统在某个时间执行的特定的命令或程序任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库地备份基本语法crontab[选项]常用选项快速入门特定时间执行任务案例crond 相关指令crontab -r :终止任务调度crontab -l :列出当前有哪些任务调度service crond r原创 2021-04-17 17:00:53 · 276 阅读 · 0 评论 -
Linux实操篇(组管理和权限管理)
Linux组基本介绍在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组,其他组的概念。1.所有者2.所在组3.其他组4.改变用户所在的组文件/目录 所有者一般为文件的创建者,谁创建了文件,就自然的成为该文件的所有者查看文件的所有者指令: ls -ahl修改文件所有者指令:chown 用户名 文件名组的创建基本指令groupadd 组名文件,目录所在组当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组查看文件原创 2021-04-16 21:17:30 · 108 阅读 · 0 评论 -
linux实操篇(实用指令)
指定运行级别基本介绍0:关机1:单用户【找回丢失密码】2:多用户状态没有网络服务3:多用户状态有网络服务4:系统未使用保留给用户5:图形界面6:系统重启常用运行级别是3和5,也可以指定默认运行级别应用实例命令:init[0123456] 应用案例:通过init 来切换不同的运行级别,比如动5-3,然后关机显示当前运行级别linux找回root密码首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““原创 2021-04-15 20:44:34 · 205 阅读 · 0 评论 -
linux实操篇(用户管理)
用户管理基本介绍Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统添加用户基本语法useradd 用户名应用案例添加一个用户milan指定/修改密码基本语法passwd 用户名应用案例给milan指定密码补充:显示当前用户所在的目录-pwd显示你当前在哪个目录下用户删除userdel milan删除用户userdel -r tom 删除用户及其文件(慎重!!)查询用户信息id原创 2021-04-11 22:10:39 · 189 阅读 · 0 评论 -
linux实操篇(开机,重启,用户登录和注销)
关机重启命令基本介绍shutdown-hnow立刻进行关机shudown-h1“hello,1分钟后会关机了”shutdown-rnow现在重新启动计算机halt关机,作用和上面一样reboot现在重新启动计算机sync把内存的数据同步到磁盘注意细节1.不管是重启系统还是关系系统,首先要运行sync命令,把内存中的数据写到磁盘中2.目前的shutdown/reboot/halt 等命令已经在关机前进行了原创 2021-04-11 21:15:17 · 155 阅读 · 0 评论 -
linux实操篇(Vi和Vim编辑器)
vi和vim的基本介绍Linux系统会内置vi文本编辑器。Vim具有程序编辑的能力,可以看作是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计,代码补完,编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。常用的三种模式正常模式以vim打开一个档案就直接进入一般模式了(这就是默认的模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据插入模式按下i,I,o,O,原创 2021-04-11 21:00:30 · 150 阅读 · 3 评论 -
linux实操篇(远程登录)
远程登录到Linux服务器为什么要远程登录linux?1.linux服务器是开发小组共享2.正式上线的项目运行在公网Xshell6介绍说明:Xshell是目前最好的远程登录到Linux操作的软件,拥有流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNET协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端原创 2021-04-11 19:33:33 · 200 阅读 · 2 评论 -
Spring Boot开发小技巧
一、Lombok简化JavaBean开发 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok.ast</artifactId> <version>0.2</version> </dependency>@Data----g原创 2021-03-13 20:32:48 · 98 阅读 · 0 评论 -
Spring Boot 配置文件
二、配置文件2.1 配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;application.propertiesapplication.yml配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好了;YAML (Ain’t Markup Language)YAML A Markup Language:是一个标记语言YAML isn’t Markup Language:不是一个标记语言标记语言:以前的配置文原创 2021-03-12 21:35:04 · 112 阅读 · 0 评论 -
Spring Boot入门
一、Spring Boot入门1.Spring Boot简介简化Spring应用开发的一个框架整个Spring技术栈的一个大整合J2EE开发的一站式解决方案2.微服务微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;每一个功能元素最终都是一个可独立替换和独立升级的软件单元单体应用:All In One3.Spring Boot HelloWorld一个功能浏览器发送hello请求,服务器接收请求并处理,响应Hello World字符串;1.原创 2021-03-12 15:17:50 · 97 阅读 · 0 评论