• 暂时停更一段时间!
  • 近期网站将陆续进行前端页面改造!
  • 招募网站编辑,联系站长!

标签:Java

Java 运行时的内存划分

Java 运行时的内存划分程序计数器记录当前线程所执行的字节码行号,用于获取下一条执行的字节码。当多线程运行时,每个线程切换后需要知道上一次所运行的状态、位置。由此也可以看出程序计数器是每个线程私有的。虚拟机栈虚拟机栈由一个一个的栈帧组成,栈帧是在每一个方法调用时产生的。每一个栈帧由局部变量区、操作数栈等组成。每创建一个栈帧压栈,当一个方法执行……

Linux下JDK环境搭建及项目部署(三)web项目发布部署

项目发布之前开发好了一个购物车项目,并已经导出为 war 包,接下来就用这个做实验。如果需要我的这个 war 包的话,下载地址在下面密码:(回复可见)打开 FlashFXP,上传我们的 war 包到 upload 目录里打开 Xshell6,执行以下命令,部署项目到 Tomcat 服务器中# 进入 upload 目录cd /home/up……

Linux下JDK环境搭建及项目部署(二)JDK环境及TOMCAT配置

上传 JDK 和 Tomcat将上一节我们下好的 JDK1.8 和 Tomcat8 通过 FlashFxp 上传到服务器/home/upload/目录下。配置 JDK接下来先配置 JDK,执行以下步骤:# 进入 upload 目录cd /home/upload# 赋予 777 权限chmod 777 *# 复制到 opt 目录……

Linux下JDK环境搭建及项目部署(一)FlashFXP和Xshell的使用

购买服务器首先需要一台服务器,阿里云和腾讯云的都可以,我个人比较喜欢阿里云,在阿里云也买了好几个服务器了,这两个云都有学生优惠,一般十块钱就能买一个 1 核 2G 的服务器。具体购买操作就不细讲了,这里系统我们选择 centos7 64 位。然后更改 root 密码即可。安装 FlashFXP这个软件用来上传项目到服务器,百度搜索下载安装即可。……

JSP+Servlet+HttpClient实现单点登录教程(二)

Server 实现1、页面我们仿照慕课网的页面进行设计,这里已经准备好了登录页面,将 login.jsp 拷贝到 SSO_Server 里的 views 里面。2、在com.jikewenku.sso.servlet包下面新建一个LoginServelet.javapackage com.jikewenku.sso.servlet;impo……

JSP+Servlet+HttpClient实现单点登录教程(一)

单点登录单点登录相信不需要多介绍了吧?比如我现在登录了淘宝,当我现在再访问一下天猫的时候,现在我就不需要登录,并且已经是登录状态了,原因就是这两个网站存在着单点登录这一功能。技术点介绍cookie 存放登录的信息,HTTPClient 是在不同的 web 应用或者是和 SSO 的 server 之间去做通信,Thread 是我们用多线程的方式去异步发……

Java基础知识随笔(五)异常

什么是异常异常字面翻译就是“意外、例外”的意思,也就是非正常情况异常本质上是程序上的错误程序中的异常使用空的对象引用调用方法String str=null;System.out.println(str.length());数组访问时下标越界int[] arr={1.2.3};for(int i=0;i<=3;i++){ ……

Java基础知识随笔(四)设计模式

设计模式设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结设计模式是软件开发人员在软件开发过程中面临的一半问题的解决方案项目汇总合理的运用设计模式可以完美的解决很多问题每种模式在现在中都有相应的原理来与之对应每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案面向对象的……

Java基础知识随笔(三)继承

生活中的继承孩子像老王富二代师徒关系程序中的继承继承特点:1、利于代码复用2、缩短开发周期一种类与类之间的关系使用已存在的类的定义作为基础建立新类新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性的继承父类父类:基类子类:派生类继承的关系满足“A is a B”的关系就可以形成继承关系如:猫、狗是动物……

Java基础知识随笔(二)封装

封装将类的某些信息隐藏在类的内部,不允许外部程序直接访问通过该类提供的方法来实现对隐藏信息的操作和访问隐藏对象的信息留出访问的接口特点:1、只能通过规定的方法访问数据2、隐藏类的实例细节,方便修改和实现包作用:1、管理 java 文件2、解决同名文件冲突定义包语法:package 包名;例:package com.jikewe……

Java基础知识随笔(一)面向对象

什么是对象万物皆对象、客观存在的事物对象:用来描述客观事物的一个实体,由一组属性和方法构成类类是模子,确定对象将会拥有的特征(属性)和行为(方法)类的特点 类是对象的类型 具有相同属性和方法的一组对象的集合什么是对象的属性和方法属性:对象具有的各种静态特征“有什么”方法:对象具有的各种动态行为“能做什么”类和对象的……

this关键字的用法

this 关键字的用法this 在类中就是代表当前对象,可以通过 this 关键字完成当前对象的成员属性、成员方法和构造方法的调用。那么何时用 this?当在定义类中的方法时,如果需要调用该类对象,就可以使用 this 来表示这个对象。也就是说,但凡在本类功能内部使用到了本类对象,都用 this 表示。至于代表哪个对象,就看其所在功能被哪个对象调用,这……

JDK中的设计模式(三)结构型

1. 适配器把一个类接口转换成另一个用户需要的接口。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.b……

JDK中的设计模式(二)行为型

1. 责任链避免将请求的发送者附加到其接收者,从而使其它对象也可以处理请求;将请求以对象的方式发送到链上直到请求被处理完毕。java.util.logging.Logger#log()javax.servlet.Filter#doFilter()2. 命令模式将命令封装进对象中;允许使用命令对象对客户对象进行参数化;允许将命令对象存放到队……

JDK中的设计模式(一)创建型

1. 单例模式确保只实例化一个对象,并提供一个对象的全局访问点。java.lang.Runtime#getRuntime()java.awt.Toolkit#getDefaultToolkit()java.awt.GraphicsEnvironment#getLocalGraphicsEnvironment()java.awt.Deskt……

Java虚拟机(四)JVM 参数

GC 优化配置配置描述-Xms初始化堆内存大小-Xmx堆内存最大值-Xmn新生代大小-XX:PermSize初始化永久代大小-XX:MaxPermSize永久代最大容量GC 类型设置配置描述-XX:+UseSerialGC串行垃圾回收器-XX:+UseParallelGC并行……

Java虚拟机(三)类加载机制

类是在运行期间动态加载的。类的生命周期包括以下 7 个阶段:– 加载(Loading)– 验证(Verification)– 准备(Preparation)– 解析(Resolution)– 初始化(Initialization)– 使用(Using)– ……

Java虚拟机(二)垃圾收集

程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。垃圾回收主要是针对 Java 堆和方法区进行。判断一个对象是否可回收1. 引用计数给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。两个对象出现……

Java虚拟机(一)运行时数据区域

程序计数器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。虚拟机栈每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。可以通过 -Xss 这个虚拟机参数来指定一个程序的 Java 虚拟机栈……

Java容器(三)源码分析

建议先阅读 [算法-查找](https://www.jikewenku.com/algorithm/algorithm-lookup.html) 部分,对容器类源码的理解有很大帮助。至于 ConcurrentHashMap 的理解,需要有并发方面的知识,建议先阅读:[Java 并发]()以下源码从 JDK 1.8 提取而来。ArrayList[Arr……

Java容器(二)容器中的设计模式

迭代器模式Collection 实现了 Iterable 接口,其中的 iterator() 方法能够产生一个 Iterator 对象,通过这个对象就可以迭代遍历 Collection 中的元素。从 JDK 1.5 之后可以使用 foreach 方法来遍历实现了 Iterable 接口的聚合对象。List<String> list ……

Java容器(一)概览

容器主要包括 Collection 和 Map 两种,Collection 又包含了 List、Set 以及 Queue。Collection1. Set– HashSet:基于哈希实现,支持快速查找,但不支持有序性操作,例如根据一个范围查找元素的操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet ……

Java并发(十三)多线程开发良好的实践

– 给线程起个有意义的名字,这样可以方便找 Bug。– 缩小同步范围,例如 对于 synchronized,应该尽量使用同步块而不是同步方法。– 多用同步类少用 wait 和 notify。首先,CountDownLatch, Semaphore, CyclicBarrier 和 Exchanger 这些同步类简化了编……

Java并发(十二)锁优化

高效并发是从 JDK 1.5 到 JDK 1.6 的一个重要改进,HotSpot 虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁粗化(Lock Coarsening)、轻量级锁(Lightweight Locking)和偏向锁(Biased L……