- 博客(55)
- 收藏
- 关注
原创 Spring的AOP理解
Spring的AOP理解:OOP面向对象,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用。AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。可用于权限认证、日志、事务处理。AOP实现的关键在于 代理模式,AOP代理主要分为静态代理和动态代理。静态
2020-09-30 15:12:40 113
原创 Java中 a+=b和a=a+b有什么区别?
一:性能方面a=a+b是加法运算 需要两次寻找地址而a+=b是增量运算有寄存器优先时 只有一次地址查找。效率方面后者略高于前者 基于现在计算机的发展可忽略不计。二:对于不同类型的a,b来说1:不同类型的两个变量在进行运算的时候,我们经常说到的是类型的转换问题。这里,记住两点:一、运算过程中,低精度的类型向高精度类型转换。二、如果将高精度的数值赋值给低精度类型变量,则必须要进行显性的强制转换。2: += 是java中的一个运算符,而不是两个,所以在运算时 会进行自动类型转换。所以在编译时...
2020-09-30 14:03:31 2414
原创 Java基本数据类型及所占字节大小
一、Java基本数据类型 基本数据类型有8种:byte、short、int、long、float、double、boolean、char 分为4类:整数型、浮点型、布尔型、字符型。 整数型:byte、short、int、long 浮点型:float、double 布尔型:boolean 字符型:char二、各数据类型所占字节大小 计算机的基本单位:bit . 一个bit代表一个0或1 byte:1byte = 8bit 1个字节是8个bit..
2020-09-30 13:35:00 1887
原创 String、StringBuuffer、StringBuilder三者的区别
可变性String 类中使用 final 关键字字符数组保存字符串, private final char value[] ,所以 String 对象是不可变的。StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串 char[]value 但是没有用 final 关键字修饰,所以这两种对象都是可变的。StringBuilder 与 StringBuffer 的构造方法都是
2020-09-30 11:31:31 701
原创 Hashcode 的作用
java 的集合有两类,一类是 List,还有一类是 Set。前者有序可重复,后者无序不重复。当我们在 set 中插入的时候怎么判断是否已经存在该元素呢,可以通过 equals 方法。但是如果元素太多,用这样的方法就会比较满。于是有人发明了哈希算法来提高集合中查找元素的效率。 这种方式将集合分成若干个存储区域,每个对象可以计算出一个哈希码,可以将哈希码分组,每组分别对应某个存储区域,根据一个对象的哈希码就可以确定该对象应该存储的那个区域。hashCode 方法可以这样理解:它返回的就是根据对象的内存
2020-09-30 10:03:21 221
原创 重载和重写的区别
重写(Override)从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。重写 总结:(1)发生在父类与子类之间(2)方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同
2020-09-30 09:59:56 537
原创 Java 自动装箱与拆箱
Java 自动装箱与拆箱装箱就是自动将基本数据类型转换为包装器类型(int–>Integer);调用方法:Integer 的 valueOf(int) 方法拆箱就是自动将包装器类型转换为基本数据类型(Integer–>int)。调用方法:Integer 的 intValue 方法在 Java SE5 之前,如果要生成一个数值为 10 的 Integer 对象,必须这样进行:而在从 Java SE5 开始就提供了自动装箱的特性,如果要生成一个数值为 10 的 Integer 对象,
2020-09-30 09:44:35 89
原创 栈出现的异常和设置栈的大小-Xss
异常 java.lang.StackOverflowError看下面的例子,默认的栈内存设置栈内存使用参数-Xss大小来设置栈的大小
2020-09-29 23:44:10 429
原创 java全局变量和局部变量
分类:变量按作用范围划分分为全局变量(成员变量)和局部变量成员变量按调用方式划分分为实例属性与类属性局部变量按定义位置划分分为形参,方法局部变量,代码块局部变量成员变量:直接在类中声明的变量叫成员变量(又称全局变量)初始化:如果未对成员变量设置初始值,则系统会根据成员变量的类型自动分配初始值:int分配初始值0、boolean分配初始值false,而自定义类型则分配初始值null作用范围:成员变量定义后,其作用域是其所在的整个类。且成员变量的定义没有先后顺序,但是..
2020-09-29 08:00:18 589 1
原创 git冲突“accept theirs”和“accept yours”
Accept Yours 就是直接选取本地的代码,覆盖掉远程仓库的Accept Theirs 是直接选取远程仓库的,覆盖掉自己本地的我们选择Merge,自己手动行进选择、修改。这里左边部分是你本地仓库的代码,右边部分是远程仓库的代码,中间的result就是你修改之后的结果。左下角的Accept Left 和Accept Right其实就相当于是之前的 Accept Yours 和 Accept Theirs 右下角的Apply是确认合并,Abort是取消合并。我们在resul...
2020-09-27 20:43:03 14186
原创 ExtClassLoader和AppClassLoader是Launcher类的两个内部类
sun.misc.Launcher他是一个java虚拟机的入口应用看下Launcher类ExtClassLoader和AppClassLoader是Launcher类的两个内部类
2020-09-24 23:42:29 633
原创 JNI----Native本地方法接口
Native本地方法接口JNI:Java Native Interface本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序native:凡是带native关键字的,说明java的作用范围达不到了,会去调用底层c语言的库!进入本地方法栈,调用本地方法接口JNI,拓展Java的使用,融合不同的语言为Java所用Java诞生的时候C、C++横行,为了立足,必须要能调用C、C++的程序 于是在内存区域中专门开辟了一块标记区域:Native Method St.
2020-09-23 21:04:39 366
原创 jps显示当前所有java进程pid
很多Java命令都在jdk的JAVA_HOME/bin/目录下面,jps也不例外,他就在bin目录下,所以,他是java自带的一个命令。jps(Java Virtual Machine Process Status Tool)是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。jps 也是一样,它的作用是显示.
2020-09-22 13:05:15 885
原创 计算机语言分为三种:机器语言、汇编语言和高级语言
计算机语言有哪几种?计算机语言分为三种:机器语言、汇编语言和高级语言1.机器语言机器语言是用二进制代码表示计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。优点:灵活、直接执行、速度快等缺点:不同型号的计算机的机器语言是不相通的 难于辨别和记忆,编程人员要熟记所用计算机的全部指令代码和代码的含义 编写程序花费时间太长,是运行时间的几十倍和几百倍 编出的...
2020-09-22 00:03:33 31314 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人