- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 Linux环境变量
概述bash shell用一个叫作环境变量(environment variable)的特性来存储有关shell会话和工作环 境的信息(这也是它们被称作环境变量的原因)。这项特性允许你在内存中存储数据,以便程序 或shell中运行的脚本能够轻松访问到它们。这也是存储持久数据的一种简便方法。分类全局变量局部变量全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量则...
2019-09-05 19:45:07 139
原创 系统监控相关命令
PSps -ef参数作用e显示所有进程f显示完整格式的输出示例输出toptop PID:进程的ID。 USER:进程属主的名字。 PR:进程的优先级。 NI:进程的谦让度值。 VIRT:进程占用的虚拟内存总量。 RES:进程占用的物理内存总量。 SHR:进程和其他进程共享的内存总量。 S:进程的状态(D代表可中断...
2019-09-03 19:39:32 142
原创 基本的bash shell命令
常见Linux目录名称遍历目录cdcd destinationcd命令可接受单个参数destination,用以指定想切换到的目录名。destination参数可以用两种方式表示:一种是使用绝对文件路径,另一种是使用相对文件路径。特殊的符号符号作用~用户目录.当前目录…上一级目录pwdpwd查看当前目录绝对路径ls 查看目录和...
2019-08-27 22:48:53 136
转载 7 JVM监控工具
JPS 虚拟机进程监控工具jinfo 实时地查看和调整虚拟机各项参数jstat 虚拟机统计信息监视工具jstack Java堆栈跟踪工具jconsole 可视化工具集成jvisualvm 可视化工具集成//todo 重点关注jvisualvm...
2019-08-12 13:07:41 98
转载 5 垃圾回收算法
垃圾回收算法简介标记清除算法标记整理复制算法原理标记所有需要回收的对象,然后清除所有被标记的对象将可用的内存按容量划分为大小相等的2块,每次只用一块,当这一块的内存用完了,就将存活的对象复制到另外一块上面,然后把已使用过的内存空间一次清理掉。标记过程与“标记-清除”一样,但后续不是对可回收对象进行清理,而是让所有的对象都向一端移动,然后直接清理掉端边界以外的内存。...
2019-08-11 21:09:24 92
转载 4 Java中的引用分类
Java中有四种引用类型分为:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)4 种,这 4 种引用的强度依次减弱。表哥强引用软引用弱引用虚引用英语Strong ReferenceSoft ReferenceWeak ReferencePha...
2019-08-10 16:44:56 122
原创 3 垃圾回收
概述垃圾回收需要考虑3件事情那些内存需要回收什么时候回收如何回收判断对象是否需要回收引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不能再被使用的。引用计数法实现简单,判定效率也很高,但是它很难解决对象之间相互循环引用的问题。public class ReferenceCountingG...
2019-08-10 15:51:58 84
原创 1 Java内存区域
Java运行时数据区域程序计数器 程序计数器是一个记录着当前线程所执行的字节码的行号指示器。 因为JVM的多线程是通过CPU时间片轮转(即线程轮流切换并分配处理器执行时间)算法来实现的。某个线程在执行过程中可能会因为时间片耗尽而被挂起,而另一个线程获取到时间片开始执行。当被挂起的线程重新获取到时间片的时候,它要想从被挂起的地方继续执行,就必须知道它上次执行到哪个位置,在JVM中,通过程...
2019-08-06 23:17:36 85
原创 实现领域驱动设计 读书笔记
1 什么是领域驱动设计(DDD) 领域驱动设计是一种软件设计方法,帮助我们设计高质量的软件模型。1.1 什么是领域模型 领域模型是关于某个特定业务领域的软件模型。通常领域模型通过对象模型来实现,这些对象包含数据和行为,并且表达了准确的业务含义。2 领域、子域、限界上下文领域:从广义上讲,领域(domain)即是一个组织所作的事情以及其中所包含的一切。//todo...
2019-05-02 16:02:11 386
原创 获取请求路径上的参数
@RequestMapping(value = "/{helper}/tenantId/{tenantId}/data/{id}") public ResultDto queryCache(@PathVariable String helper, @PathVariable Integer tenantId, @PathVariable String id){ ...
2019-04-13 12:39:40 914
转载 多线程共享变量问题
非线程安全代码举例public class NoVisibility { private static boolean ready; private static int number; private static class ReaderThread extends Thread { public void run() { while
2017-11-06 13:57:52 1229
转载 线程安全性
有状态与无状态无状态对象一定是线程安全的@ThreadSafepublic class StatelessFactorizer extends GenericServlet implements Servlet { public void service(ServletRequest req, ServletResponse resp) { BigInteger i = ex
2017-11-06 12:10:09 220
转载 多线程带来的风险
安全性问题下面是一个非线程安全的代码示例@NotThreadSafepublic class UnsafeSequence { private int value; /** * Returns a unique value. */ public int getNext() { return value++; }}活跃性问题在串行程
2017-11-06 10:54:57 312
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-11-06 10:36:41 164
原创 Java IO -- 对象流
基本的操作package write.object;import java.io.Serializable;import java.util.Calendar;import java.util.GregorianCalendar;public class Employee implements Serializable{ /** * */ private s
2017-05-20 20:07:40 204
原创 Java IO字节流
注意(1)使用字节流写入String时,不用writerUTF()方法(在写出用于Java虚拟机的字符串时才使用)。而是使用writerChars()方法。所以需要内String限定一个长度。 (2)字节流以字节byte为最小单位。 char两个字节 String s = “abc”; s.length ⇒ 3 但是s占6个字节代码示例package bytes.stream.employ
2017-04-07 16:14:32 208
原创 Java IO 字符流例子
关于类的选取输出流一般使用PrintWriter 输入流一般使用Scanner注意事项(1)行结束符。Windows系统是“\r\n”,UNIX系统是“\n”。 可以通过调用System.getProperty(”line.separator”)来获取。代码示例:package character.stream.employee;import java.util.Calendar;import
2017-04-07 15:59:04 346
原创 Java编程思想 -- 容器深入理解
可选操作简单说就是抽象类的的某些派生类实现里,或者接口的某个实现类里面,某个方法可能是无意义的,调用该方法会抛出一个异常。例如在collection的某些实现类里,里面的元素可能都是只读的,那么add这个接口是无意义的,调用会抛出UnspportedOperationException异常。例子:代码:public class UnsupportedTest { public static
2017-03-29 21:11:39 272
原创 Java编程思想 -- 数组相关
数组拷贝的比较System.arraycopy()Java标准类库提供的方法,用它复制数组比for循环快得多。 (1)对基本类型采用值复制。 (2)对对象采用引用复制。所以是‘浅拷贝’ (3)没有自动装箱和自动拆箱功能 int[] a = {1, 2, 3, 4, 5}; int[] b = new int[5]; Integer[] c = n
2017-03-28 17:14:00 203
原创 equal与==的区别
综述一般来说,“==”是用来比较两个String对象在内存中的存放地址是否相同的。而equal方法是object类的方法,object类中的equal方法也使用“==”实现的,也就是说,如果直接继承object类的equal方法,则也是比较两个对象在内存中的地址是否相同。自定义类的时候,可以选择覆盖equal方法。特殊情况如果对象是基本类型的包装类或者字符串,那么情况就很有意思了。 首先我们应该明
2017-03-23 22:34:40 351
原创 Java编程思想 -- 异常
杂谈人们在使用软件时,遇到程序错误会很不爽。如果一个用户在运行期间,由于程序的错误或一些外部环境的影响造成用户数据的丢失,用户就有可能不在使用这个程序了。为了必选这类事情的发生,至少应该做到以下几点:向用户通告错误返回到一种安全的状态,并能够让用户自行一些其他的命令允许用户保存所有的操作的结果,并以妥善的方式终止程序。程序需要关心的错误种类用户输入错误 除了不可避免的键盘输入错误,有些用
2017-03-23 17:05:23 420
原创 Java编程思想 -- 容器的特性总结
基本概念Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念。 (1)Collection。 一个独立元素的序列,这些元素都服从一条或者多条规则。List 必须按照元素插入的顺序保存元素。Set不能有重复的元素。Queue按照队列规则来确定对象产生的顺序(2)Map。一组成对的“键值对”对象,允许你使用键来查找值。常用容器的特性List 1.1 ArrayList 随机访
2017-03-23 11:48:02 231
原创 java编程思想 -- 内部类
内部类的使用内部类拥有外围类所以成员的访问权interface Selector{ boolean end(); Object current(); void next();}public class Sequence{ private Object[] items; private int next = 0; public Sequence(int s
2017-03-22 11:02:48 242
原创 java编程思想 -- 接口
这里接口指抽象类还有interface接口java抽象类定义:使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。特性抽象类为子类提供了通用的接口,但是本身不能实例化。子类需要实现抽象方法变成非抽象类,才能实例化。interface接口定义在JAVA编程语言
2017-03-20 13:11:09 315
原创 final关键字
final字段该字段的值不能改变。 声明时可以不赋值,可以在其他地方赋值,如果赋值完成,该值就不能再改变了。 final参数如果final修饰的参数是基本类型,则值不能改变。 如果final修饰的参数是对象的引用,则引用的值不能改变,但是引用所对应的对象还是能改变的。 public void f(final int i){// The final local variable
2017-03-19 17:07:12 174
原创 java访问权限
Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
2017-03-19 16:10:33 216
原创 java编程思想 -- 关于构造器
(1)如果没有显式的声明构造器,编译器会自动给你的类加上无参构造函数。 (2)如果显式声明了构造器,则编译器不会自动给你的类加上无参构造函数。 (3)在构造器内,如果没有显式的调用父类的构造器,编译器会自动帮你调用父类的无参构造器。
2017-03-19 15:50:41 240
原创 java编程思想 -- CLASSPATH路径
环境变量CLASSPATHCLASSPATH设置的作用CLASSPATH设置的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。Java解释器运行过程:(1)首先找到CLASSPATH。 (2)CLASSPATH包含一个或者多个目录,用来做.class文件的根目录。 (3)解释器获取包的名称并将每个句点换成反斜杠。产生一个路径。并且与CLASSPATH
2017-03-19 14:44:55 538
原创 java编程思想 -- 对象的初始化和清理
关于构造器super(); 可以引用父类构造器,必须放在‘第一行’this(….); 可以应用该类其他构造器,必须放在‘第一行’。 所以,super()和this(…)不能共存。也不能调用两次this(…)示例一: 示例二: finalize( )方法对象初始化顺序
2017-03-18 18:53:36 631
原创 java编程思想 -- 流程控制语句
没有标签的break终止当前循环代码 System.out.println("-----没有标签的break--------"); /* * 没有标签的break终止当前循环 */ for(int i = 0; i < 5; i++){ if(i == 3){ b
2017-03-18 12:00:58 285
原创 java编程思想 -- java概述
(1)内存分配寄存器: 在运算器内部,运行速度非常快,但是你不能控制。 栈(stack): 在RAM内,存放变量。堆(heap): 在RAM内,存放对象。速度比stack要慢常量 : 常量值直接存储在程序代码内部,这样做是安全的,因为它的值永远不会改变非RAM存储: 数据完全存活于程序之外。例如:流对象和持久化对象。(2)基本数据类型 基本数据类型 大小 最小值 最大值
2017-03-17 15:59:24 418
原创 能用javac编译程序,却不能用java运行程序
报错内容如下:错误: 找不到或无法加载主类解决方法:ClassPath应该是:.;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar然后重启CMD命令行就可以了。问题解析:ClassPath 指出了运行java程序的路径,其中' . '代表当前文件夹。
2017-03-17 14:19:52 1684 2
原创 Java核心技术卷1 java的基本程序设计结构笔记
(1)double类型的陷阱public class DoubleTest { /** * 这个程序可能无法结束运行 */ @Test public void test(){ for(double x = 0.1; x != 10.0; x += 0.1){ System.out.println(x); } } /** * 结果有误差的 */ @T
2016-10-28 11:10:46 235
原创 struts2上传异常
错误如下:浏览器:net::ERR_CONNECTION_RESETjava控制台:ERROR ExceptionMappingInterceptor Invalid action class configuration that references an unknown class named [handleMusicAction] java.lang.RuntimeExcept
2016-10-27 09:52:35 491
转载 java的栈(stack)与堆(heap)
java1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据在多个线程或者多个栈之间是不可以共享的,但是在栈内部多个值相等的变量是可以指向一个地
2016-10-25 12:07:10 207
原创 struts2生成验证码
思路:用response的输出流向页面输入图片(1)图片生成工具类package com.wframe.base.utils;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.RenderingHints
2016-10-23 17:34:18 320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人