JDK

树莓派4 安装 CentOS8X64 位系统

这一生的挚爱 提交于 2021-01-19 09:18:20
树莓派4 安装 CentOS8X64 位系统 01 下载安装包及烧录系统 参考 http://reallyappreciate.com/raspberry-pi-4-8gb-model-with-centos-8/ 下载centos8 树莓派镜像 从网址:https://people.centos.org/pgreco/ 下载 。 wget https://people.centos.org/pgreco/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw.xz 解压为 CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw 下载 烧录工具 wget https://sourceforge.net/projects/win32diskimager/files/Archive/Win32DiskImager-1.0.0-binary.zip 烧录系统到tf卡上 系统启动及链接 系统烧录后,不需要做任何设置,加电、连接网线即可ssh登录。 把tf卡安装到树莓派4上面加电, 连接网线 。

tomcat发布html静态页面

 ̄綄美尐妖づ 提交于 2021-01-19 08:01:13
一、环境 在Linux系统安装JDK并配置环境变量,安装tomcat(在tomcat官网下载压缩包即可,我使用的是tomcat7 https://tomcat.apache.org/download-70.cgi ) 二、修改配置 在/conf目录下找到server.xml, 1,修改端口 1 <Connector port=" 8098 " protocol="HTTP/1.1" 2 connectionTimeout="20000" 3 redirectPort="8443" /> 2,修改 在</Host>下</Engine>上添加如下内容 1 <Host name=" 185.27.51.15 " debug="0" appBase=" webapps " unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 2 <Context path="" docBase=" spider " debug="0" reloadable="true" crossContext="true"/> 3 4 <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="tot

没搞清楚网络I/O模型?那怎么入门Netty

99封情书 提交于 2021-01-18 17:03:47
本文是Netty系列笔记第2篇 Netty是网络应用框架,所以从最本质的角度来看,是对网络I/O模型的封装使用。 因此,要深刻理解Netty的高性能,也必须从网络I/O模型说起。 看完本文,可以回答这三个问题: 五种I/O模型是什么?核心区别在哪里? 同步=阻塞?异步=非阻塞? Netty的高性能,是采用了哪种I/O模型? 1.掌握五种I/O模型的关键钥匙 Unix系统下的五种基本I/O模型大家应该都有所耳闻,分为: blocking I/O(同步阻塞IO,BIO) nonblocking I/O(同步非阻塞IO,NIO) I/O multiplexing (I/O多路复用) signal driven I/O(信号驱动I/O) asynchronous I/O(异步I/O,AIO) 每种I/O的特性如何,尤其是同步/非同步、阻塞/非阻塞的区别,其实很多人并不能准确地进行区分。 所以,我们先把最核心的“钥匙”告诉大家,带着这把“钥匙”再来看I/O模型的关键问题,就能手到擒来了。 当一次网络IO发生时,主要涉及到 三个对象 : 发起此次IO操作的Process或者Application 系统内核kernel。用户进程无法直接操作I/O设备,必须通过系统内核kernel与I/O设备交互。 I/O设备,包括网络、磁盘等。本文主要针对网络。 真正的I/O过程,主要分为 两个阶段 :

java并发之TimeUnit理解

一笑奈何 提交于 2021-01-18 17:02:29
TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段时间里Thread的sleep()方法作为暂停线程的标准方式,几乎所有Java程序员都熟悉它,事实上sleep方法本身也很常用而且出现在很多面试中。如果你已经使用过Thread.sleep(),当然我确信你这样做过,那么你一定熟知它是一个静态方法,暂停线程时它不会释放锁,该方法会抛出InterrupttedException异常(如果有线程中断了当前线程)。但是我们很多人并没有注意的一个潜在的问题就是它的可读性。Thread.sleep()是一个重载方法,可以接收长整型毫秒和长整型的纳秒参数,这样对程序员造成的一个问题就是很难知道到底当前线程是睡眠了多少秒、分、小时或者天。看看下面这个Thread.sleep()方法: Thread.sleep(2400000) 粗略一看,你能计算出当前线程是等待多长时间吗?可能有些人可以,但是对于大多数程序员来说这种写法的可读性还是很差的,你需要把毫秒转换成秒和分,让我们来看看另外一个例子,这个例子比前面那个例子可读性稍微好一点: Thread.sleep(4*60*1000); 这比前面那个例子已经好多了,但是仍然不是最好的,你注意到睡眠时间用毫秒

动态代理

五迷三道 提交于 2021-01-18 10:39:12
代理: 1.静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了 2.动态代理:在程序运行时运用反射机制动态创建而成 JDK和CGLIB动态代理的差别: 1.JDK是基于java反射机制实现的,必须实现接口的业务才能生动态代理对象 2.cglib是基于ASM机制实现的,他会生成业务类的字类作为代理类 JDK代理的优点:最小依赖减少维护,代码简洁 cglib:无需实现接口,无侵入代码,性能高 来源: oschina 链接: https://my.oschina.net/wenhuayuan/blog/4910064

我就改了一下参数,竟然让Tomcat和JVM的性能提升了两倍!

坚强是说给别人听的谎言 提交于 2021-01-17 17:06:40
前言 在工作中,作为 Java 开发的程序员,Tomcat 服务器是大家常用的,也是很多公司现在正在用的。但是,在系统并发量比较大的情况下,Tomcat 就会出现卡死和自动关闭等问题。如何优化 Tomcat,让它更高效的运行就成了问题,在本篇小编中,我将为你分享如何更好的提升 Tomcat 性能。 Tomcat性能调优 找到Tomcat根目录下的conf目录,修改server.xml文件的内容。小编这里也对应整理了一份JVM调优和实战400多页 学习笔记 ,关注公众号:麒麟改bug,获取详细PDF对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的线程数的设置,当然还有其他一些性能调优的设置,下图是我根据我机子的性能设置的一些参数值,给各位详细解释一下吧: ​ 1、URIEncoding=“UTF-8”: 设置Tomcat的字符集。这种配置我们一般是不会设置的,因为关于乱码的转换我们会在具体项目中具体处理,直接修改Tomcat的字符集未免过于太死板。 2、maxThreads=“300”: 设置当前Tomcat的最大并发数。Tomcat默认配置的最大请求数是150个,即同时能支持150个并发。但是在实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的,更好的硬件、更高的处理器都会使Tomcat支持更多的并发数

都为你整理好了,5种Java 随机方式对比!你都知道吗?

陌路散爱 提交于 2021-01-17 16:56:19
1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double,即 0 <= random <= 1。 for (int i = 0; i < 10; i++) { System.out.println(Math.random()); } 结果: 0.3598613895606426 0.2666778145365811 0.25090731064243355 0.011064998061666276 0.600686228175639 0.9084006027629496 0.12700524654847833 0.6084605849069343 0.7290804782514261 0.9923831908303121 实现原理: When this method is first called, it creates a single new pseudorandom-number generator, exactly as if by the expression new java.util.Random() This new pseudorandom-number generator is used thereafter for all calls to this method and is used nowhere else.

BIO/NIO/AIO总结(2)

白昼怎懂夜的黑 提交于 2021-01-17 16:54:59
BIO BIO (Blocking I/O)同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。 传统BIO BIO通信(一请求一应答)模型图如下: 采用 BIO 通信模型 的服务端,通常由一个独立的 Acceptor 线程负责监听客户端的连接。我们一般通过在while(true) 循环中服务端会调用 accept() 方法等待接收客户端的连接的方式监听请求,请求一旦接收到一个连接请求,就可以建立通信套接字在这个通信套接字上进行读写操作,此时不能再接收其他客户端连接请求,只能等待同当前连接的客户端的操作执行完成, 不过可以通过多线程来支持多个客户端的连接,如上图所示。 该模型最大的问题就是缺乏弹性伸缩能力,当客户端并发访问量增加后,服务端的线程个数和客户端并发访问数呈1:1的正比关系,由于线程是JAVA虚拟机非常宝贵的系统资源,当线程数膨胀之后,系统的性能将急剧下降,随着并发访问量的继续增大,系统会发生线程堆栈溢出、创建新线程失败等问题,并最终导致进程宕机或者僵死,不能对外提供服务。 传统BIO的弊端有很多: 1.性能问题:一连接一线程模型导致服务端的并发接入数和系统吞吐量受到极大限制; 2.可靠性问题:由于I/O操作采用同步阻塞模式,当网络拥塞或者通信对端处理缓慢会导致I/O线程被挂住,阻塞时间无法预测; 3.可维护性问题:I/O线程数无法有效控制、资源无法有效共享

干货!21条常用的Linux 命令

淺唱寂寞╮ 提交于 2021-01-17 09:00:22
阅读本文大概需要 7.8 分钟。 来源: http://t.cn/EqTIhES 一、文件和目录 1. cd命令 (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径) cd /home 进入 '/ home' 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 2. pwd命令 pwd 显示工作路径 3. ls命令 查看文件与目录的命令,list之意) ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件 ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 ls [0-9] 显示包含数字的文件名和目录名 4. cp命令 (用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下) -a :将文件的特性一起复制 -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份 -i :若目标文件已经存在时,在覆盖时会先询问操作的进行 -r :递归持续复制,用于目录的复制行为 -u :目标文件与源文件有差异时才会复制 5. mv命令 (用于移动文件、目录或更名,move之意) -f :force强制的意思,如果目标文件已经存在

迈向高级的Java面试突围课

一个人想着一个人 提交于 2021-01-17 08:54:05
download: 迈向高级的Java面试突围课 本课采用大厂多轮面试形式贯穿主线,内容涵盖Java中高级面试的必考点、高频点、加薪点。同时融合讲师多年阿里字节考官经验,通过真实模拟不同面试场景,将面试每个环节和应对心得逐一讲解,助你突破自身瓶颈,超常发挥,顺利通过大厂面试。 技术要求 Java Web1年以上实际开发经验 环境参数 环境参数:JDK1.8、SpringBoot2.x 开发工具:Intelij IDEA 20世纪90年代,硬件范畴出现了单片式核算机系统,这种价格低廉的系统一出现就当即引起了主动控制范畴人员的留神,由于运用它能够大起伏行进消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市场先机,在1991年景立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其他几个工程师一起组成的作业小组在加利福尼亚州门洛帕克市沙丘路的一个小作业室里面研讨开发新技术,专攻核算机在家电产品上的嵌入式运用。 由于C++所具有的优势,该项目组的研讨人员首要考虑选用C++来编写程序。但关于硬件资源极端匮乏的单片式系统来说,C++程序过于杂乱和巨大。其他由于消费电子产品所选用的嵌入式处理器芯片的种类冗繁,怎样让编写的程序跨途径作业也是个难题。为了解决困难,他们首要着眼于言语的开发,假设了一种结构简略