- 博客(30)
- 收藏
- 关注
原创 阿里云ubuntu部署javaweb项目
阿里云ubuntu部署javaweb项目要在服务器上部署javaweb项目,需要安装运行环境,安装与本机环境一样的,jdk-11.0.8,apache-tomcat-8.5.57.tar.gz,mysql-7.3.30安装jdk于oracle官网下载jdk-11.0.8压缩包,通过xshell连接云服务器,通过xftp将压缩包放至提前创建的目录/home/fu/java目录下,执行接下来的命令解压缩jdkcd /home/fu/javatar -zxvf jdk-11.0.8-linux-x
2020-08-10 10:49:12
327
原创 idea将javaweb项目打包成war
idea将javaweb项目打包成war点击左上角的【File】->【Project Structure】菜单(或使用Shift+Ctrl+Alt+S快捷键),打开【Project Structure】窗口。如下图:在【ProjectStructure】中选择左侧的【Artifacts】页签,再点击中间上面的的“+”号,选择【WebApplication:Archive】-> 【Empty】。如下图:此时,你会发现“+”号下面有个unnamed的war包,可以选择给它war包
2020-08-10 10:10:59
822
1
原创 阿里云ubuntu安装tomcat问题
阿里云ubuntu安装tomcat问题解压完安装包后,进入tomcat的bin目录下启动tamcat./startup.sh显示启动成功,但是通过公网ip/8080并没有Tomcat的页面,网上的各种防火墙,安全组都试过了,并没有解决,后通过shutdown.sh企图停止tomcat服务,发现报错如下,找不到jre目录下的java/bin目录,可我明明在安装jdk的时候已经配置过了,又是怎么回事呢?找到jdk的安装目录,发现没有jre的目录,网上查阅资料后发现,在jdk8以后,已经没有了jre
2020-08-09 22:29:07
184
原创 阿里云ubuntu下配置jdk环境变量总是失效
阿里云ubuntu下配置jdk环境变量总是失效暂时未找到解决办法,只能每次失效重新应用配置 source /etc/profile
2020-08-09 20:54:46
270
原创 ## 网络与负载均衡
网络与负载均衡网络OSI七层网络模型网络的七层模型从上往下分为,应用层,表示层,会话层,传输层,网络层,链路层,物理层物理层:作用是传输比特流 链路层:负责在链路上传送数据帧 网络层:负责路由出传输通道,并对ip地址进行封装和解析 传输层:负责传输数据有TCP和UDP 会话层:在传输层的基础上建立连接和管理会话 表示层:对接收的数据进行解释,加密,压缩,解压缩等 应用层:基于网络构建具体应用TCP/IP四层网络模型网络的四层从上往下分为应用层,传输层,网络层,网络接口层网络接口层:定义了
2020-08-07 17:21:21
212
原创 ## 常见算法
常见算法二分查找算法查找索引 int[] num = new int[20]; int target; //查找索引 int left = 0,right =num.length-1; while(left <= right){ int mid = left +(right-left)/2; if(num[mid] == target){ return
2020-08-06 17:53:01
175
原创 ## 线程同步
线程同步synchronize关键字用于java对象,方法,代码块提供线程安全的操作,属于独占式的悲观锁,同时属于可重入锁,在使用synchronize修饰对象时,同一时刻只能有一个线程对该线程进行访问,作用于成员变量和非静态方法时,锁住的是对象的实例,即this对象,所用于静态方法时,锁住的是class实例,所用于代码块时,锁住的是所有代码块内配置的对象实现原理:在synchronize内部包括 contentionlist,entrylist,waitlist,ondeck,owner,!ow
2020-08-05 10:56:28
198
原创 ## 多线程
多线程java线程的创建方式继承Thread类,实现Runnable接口,通过ExecutorService和Callable实现有返回值的线程,基于线程池继承Thread类创建一个继承Thread类的子类重写run方法创建Thread类的子类的对象通过此对象调用start();实现runnable接口创建一个实现了runnable接口的类重写run方法创建实现类的对象将对象作为参数放入thread类的构造器中,创建thread类的对象通过thread类的对象调用star
2020-08-05 10:43:03
118
原创 ## 类加载器ClassLoader
类加载器ClassLoader类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载class文件的加载,至于是否运行是由执行引擎决定的。加载的类的信息存在方法区中,还有常量池类的加载过程加载:通过一个类的全类名获取此类的二进制字节流,在方法区存放该字节流代表的静态存储结构,然后生成一个Class对象,作为方法区各种数据的访问入口链接验证:保证字节码的合法性准备:为类变量分配内存,并赋初始值,注意不包含final修饰的static,因为final在编译的时候就分配了,准备阶段
2020-08-04 11:30:14
138
原创 ## 垃圾回收
垃圾回收垃圾回收概述什么是垃圾:在运行过程中,没有任何指针指向的对象,这个对象就是需要被回收的对象什么是垃圾回收:释放没用的对象,清理内存里的碎片,以整理出内存给新的对象垃圾回收的相关算法标记阶段引用计数器:对每个对象保存一个整形的计数器,如果有引用指向你,计数器+1,没有的时候,计数器-1,当计数器为0的时候,就可以标记为垃圾优点:实现简单,便于辨识,效率高缺点:需要单独的计数器,增加空间开销每次引用都要更新计数器,增加时间开销无法处理循环应用,会造成内存泄漏可达性分析算法:
2020-08-03 18:49:04
122
原创 ## 执行引擎
执行引擎执行引擎概述执行引擎是jvm最重要的部分之一执行那些不被硬件直接支持的指令集格式执行引擎的任务就是将字节码翻译/编译成对应平台的机器码什么是解释器,什么是jit编译器当java虚拟机启动时,会根据预定义的规范对字节码逐条进行解释的当时执行,将对应字节码翻译成对应平台的机器码指令执行JIT编译器,就是将源代码直接编译成和本地平台相关的机器语言当程序启动时,解释器就可以解释执行字节码,对于热点代码,JIT编译器编译成本地机器指令,提升效率热点代码和热点探测功能热点代码:在一
2020-08-03 16:25:52
96
原创 ## 方法区
方法区方法区的概述方法区可以看成是一块独立于java堆的内存空间线程共享,生命周期和线程一样大小和堆一样可以设置成固定和可变的方法区主要是存储类的信息,常量池,jit编译的缓存代码jdk7之前,叫永久代 jdk8开始,叫元空间 jdk7开始吧字符串常量池和静态变量放在堆中运行时常量池:包括各种字面量和堆类的类型,方法和域的符号引用。为什么要把永久代变成元空间永久代大小设置困难,空间小了容易引起full gc 分配大了又很浪费对永久代调优是很困难的,主要回收常量和类,类的回收很费时,
2020-08-03 16:11:02
154
原创 ## jvm堆
jvm堆堆的概述一个jvm只有一个堆内存,是线程共享的堆的大小是可以调节的,堆可以处于物理上不连续的内存空间中,但是在逻辑上应该认为是连续的堆还可以划分线程私有的缓冲区TLAB(Thread local allocation buffer)几乎所有的对象实例和数组在运行时都分配在堆上(逃逸分析)在方法结束后,堆中的对象不会立马被移除,仅仅在GC的时候才会被回收堆是GC执行垃圾回收的重点地区堆的内存划分jdk1.7之前,逻辑上堆划分为年轻代+老年代+永久代。永久代就是方法区的具体的实现
2020-08-03 15:29:42
170
原创 ## 从虚拟机栈的角度看i++和++i
从虚拟机栈的角度看i++和++i虚拟机栈虚拟机栈是描述java方法执行过程的内存模型,方法的执行和返回对应着虚拟机栈中的入栈和出栈,保存的是一个一个栈帧,当前栈帧对应着当前执行的方法栈帧由局部变量表,操作数栈,动态链接,返回地址和一些附加信息组成。局部变量表:定义为一个数字数组,存放方法参数和定义在方法内的局部变量,这些数据类型包括基本数据类型,返回值,对象引用(reference),容量是在编译期确认下来的,局部变量表的基本存储单位是槽,slot,32为以内的类型占一个slot,64位的类型占
2020-08-03 14:56:46
189
原创 ## JVM
JVMJVM的运行机制jvm是用于运行java字节码的虚拟机,包括一个类加载器子系统,运行时数据区,执行引擎和本地接口库。java源程序在通过编译器之后生成字节码文件,字节码文件被jvm的解释器编译成机器码在不同的操作系统上运行,每种操作系统的解释器是不同的,但基于解释器实现的虚拟机是相同的,这是java能够跨平台的原因,没有一个进程开始运行,会创建一个java虚拟机实例,随进程的消亡而消亡。java程序的具体运行过程java源文件被编译成字节码文件jvm将字节码文件编译成对应操作系统的机
2020-08-03 14:14:47
124
原创 ## hashmap为什么线程不安全
hashmap为什么线程不安全jdk1.7中线程不安全 jdk1.7中造成线程不安全是因为在多线程的情况下扩容可能会导致出现环形链表或者数据丢失,那么是为什么呢,让我们深入源码探究 问题出在HashMap的扩容函数中,根源在transfer函数中,jdk1.7中HashMap的transfer函数如下:void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length;
2020-07-27 17:25:40
144
原创 ## 集合
集合集合框架概述使用集合存储数据具有一些弊端,如:(1)数组在初始化后,长度就不可变了,不便于扩展。(2)数组中提供的属性和方法少,不易于进行增删改操作,且效率不高,无法获得存储元素的个数(3)数组的存储结构单一,是有序的可重复的。所以我们就需要使用java集合类来进行数据的存储,java集合就像一种容器,可以动态的吧多个对象的引用放到容器中,不仅可以存储数量不等的多个对象,还可以保存具有映射关系的关联数组。java集合可以分为collection和map两种体系collection接口的
2020-07-20 17:33:05
114
原创 ###yaml文件格式问题
yaml文件格式问题在搭建docker+k8S环境中,加载yaml配置文件出现了很多次问题,原因是yaml文件的缩进问题,“-”和“:”后面必须加空格yaml不支持tab进行缩进,只能使用空格结构通过缩进来显示,相同等级的数据要有相同的缩进...
2020-07-19 19:37:15
314
原创 ### docker加K8S配置beego
docker加K8S配置beego 在配置beego的时候,beego的pod一直显示crashloopbackoff,重新启动pod,重新配置svc和rc,一顿操作还是没有解决,最后查询日志发现数据库不存在,因为自己是前一天建的数据库,没有想到第二天就没有了,故从新创建了所需数据库,问题解决。...
2020-07-19 19:30:58
325
原创 ## 应用层
应用层域名系统DNS 为什么有了IP地址,还需要域名?域 名 — 用字符表示的网络主机名,是一种主机标识符;IP地址 — 数字型,难于记忆与理解;域 名 — 字符型,直观,便于记忆与理解;IP地址 — 用于网络层; 域 名 — 用于应用层IP地址与域名都应该是全网惟一的,并且它们之间具有对应关系。域名到IP地址转换由域名系统完成。域名解析将域名转换为对应的IP地址的过程称为域名解析.完成该功能的软件叫域名解析器;域名的解析过程主机向本地域名服务器的查询。如果主机所询问的本地域名服
2020-07-18 16:43:53
154
原创 ## 传输层
传输层 传输层的任务是将数据从进程传到进程,实现进程之间的数据传递。传输层起到连接资源子网层和通信子网层的作用。传输层协议有TCP和UDP两种,一种是可靠的面向连接的传输,一种是不可靠的无连接的传输。要在网络中进行进程之间的通信,我们首先需要知道是哪个进程,需要使用三元组来标识,还需要解决进程之间相互作用的模式。网络环境中进程标识(三元组)网络环境中的完整进程标识由三部分组成:主机地址,进程端口,进程所使用的的传输层协议TCP/UDP。例如(IP,80,TCP)一对通信的进程的标识
2020-07-18 15:58:44
219
原创 ### 无分类域间路由选择CIDR (Classless Inter-Domai
网络层协议无分类域间路由选择CIDR (Classless Inter-Domain Routing)CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念。地址从三级编址(使用子网掩码)又回到了两级编址。CIDR 将网络前缀都相同的连续的 IP 地址组成“CIDR地址块”。无分类的两级编址的记法是ip::={<网络前缀>,<主机号>}超网(子网汇聚)超网是与子网类似的概念–IP地址根据子网掩码被分为独立的网络地址和主机地址。但是,与子网把大网络分成
2020-07-17 16:33:44
1259
原创 ## 网络层
网络层 网络层的主要功能就是在为运输层的数据选择一条合适的路,将其运到目的地。具体功能有:路由控制,拥塞控制,异种电路的互连。网络层为传输层提供了两种服务,面向连接服务和无连接服务,不过这两种服务不是通过某种协议来实现的,而是通过传输方式的不同来实现的网络数据传输方式有两种:一种是数据报,一种是虚电路。无连接服务又被称作数据报服务,面向连接服务又称为虚电路服务。数据报服务网络随时接受主机发送的分组(即数据报)网络为每个分组独立地选择路由。网络尽最大努力地将分组交付给目的主机,但网络对
2020-07-16 18:02:38
439
原创 ## 局域网
局域网 局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。局域网具有如下的一些主要优点:能方便地共享昂贵的外部设备、主机以及软件、数据。从一个站点可访问全网。便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。提高了系统的可靠性、可用性。计算机局域网标准IEEE802标注由于局域网只是一个计算机通信网,而且局域网不存在路由选择问题,因此它不需要网络层,而只有最低的两个层次。然而局域网的种类繁多,其媒体接入控制的方法也各不相同,远远不像广域网那样简单。为了使
2020-07-15 20:15:35
530
原创 ## 流量控制
流量控制 在连续ARQ协议中,如果发送方一直没有收到接收方的确认信息,发送方并不能无限制的发送数据帧,因为当未被确认的数据帧数目太多时,如果有一帧出现了差错,发送方需要重新发送的数据帧太多,造成浪费数据帧的编号所占据比特位不能太多,所以需要有重复的编码,相同的编码不能同时在链路中传输所以需要流量控制,通过滑动窗口机制来流量控制流量控制发送方滑动窗口包含前沿指针,后沿指针,滑动窗口,假设编号用三个比特表示,滑动窗口的大小为7每发送一个数据帧,前沿指针往前移动,最多移动到发送窗口最右
2020-07-15 11:45:54
213
原创 ##数据链路协议
链路层什么叫物理链路 链路就是一条无源的从点到点的物理线路段,中间没有任何其他的交换节点。在进行通信时,两台计算机的通信通路是由多条链路串接而成的。什么是数据链路 当需要在一条链路上通信时,除了需要物理链路,还需要一些规程来控制这些数据的传输,把实现这些规程的硬件和软件加到链路上,就构成了数据链路目的:通过一些数据链路规程,在不太可靠的物理链路传输上实现可靠的数据传输实现方法:流量控制,差错控制作用:改善数据传输质量,向网络层提供高质量的服务如何实现可靠传输差错控制差错产生的原
2020-07-14 16:13:25
179
原创 ## 物理层
物理层 物理层的主要任务就是在两个网络设备之间提供透明的比特流传输,包含四个重要特性:机械特性,电器特性,功能特性,规程特性。物理层的四个重要特性机械特性:指明接口所用接线器的形状或尺寸、引线数目和排列、固定和锁定装置等,指外观特性,多宽,有多少个引脚。电气特性:指明在接口电缆的各条线上电压的范围,解决的是如何表达逻辑0和逻辑1的问题,什么样的电压范围表示0,什么样的电压范围表示1。传输速度,最大传输速度等功能特性:指明某条线上出现的某一电平表示何种意义,定义各条物理线路的意义(接地,数据,
2020-07-13 15:34:59
263
原创 ## 计算机网络体系结构
计算机网络体系结构计算机网络体系结构是对计算机网络及其部件所完成功能的比较精确的定义,只关注完成的功能,不涉及里面的细节和接口。那么计算机之间是如何通信的呢,你和你的小伙伴通过qq聊天,消息是如何发送给对方的呢。我们先来看一个快递的一生对于发送方来说,从上到下,下一层接受上一层的包裹,并给他打上信息,是一个逐步打包的过程。到达运输层,通过物流系统运输到买家对于接收方来说,从下到上,上一层接收下一层的包裹,并逐步拆开,是一个逐渐拆包的过程。相同层次看到的包裹是一样的这其实就是一个信息的传
2020-07-12 16:06:14
167
原创 ## java 注解
java 注解今天复习了java基础的注解,笔记展示如下什么是注解注解就是一种特殊标记,这些标记可以在编译,类加载,运行的时候被读取,并进行相应的处理。通过使用注解,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息,代码分析工具,开发工具和部署工具可以通过这些补充信息进行验证或部署可以像修饰符一样使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息被保存在注解的“name=value”对中注解示例生成文档相关的注释例如@author ,表示作
2020-07-11 16:31:10
122
原创 ## 计网复习第一章
计网复习第一章计算机网络定义:把分布在不同地理位置的计算机,通过通信系统连接起来,达到资源共享目的计算机系统基本特征:联网计算机必须遵循全网统一的网络协议由计算机系统,数据通信系统,网络软件和协议三部分组成分类按照范围来分,可以分为 广域网(wan),城域网,局域网(lan),个域网按照拓扑结构来分,可以分为星型,树型,总线型,环形,网状结构。总线型和星型的网络通常称为以太网数据包由首部和数据部分组成首部显示数据发送方和数据接收方数据部分存放要发送的数据...
2020-07-11 11:51:02
119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人