java
Zero_Darker
多闻数穷,不如守中。持而盈之,不如其已
展开
-
面向对象三大特性和含义
(1)封装:将客观事物抽象封装成类,并且对自己的数据实行访问控制,并且可以对私有数据进行隐藏。(2)多态:允许将子类型的指针赋给父类类型的指针实现多态有两个方式:a. 覆盖:在子类中重写父类中的方法,在子类的引用类调用此方发时,调用子类的方法。b. 重载:在同一个类中有几个方法方法名相同,但方法的参数列表不同,在调用时根据调用方法是的参数列表不同来调用不同的方法。(3)继承:可以使用现有类的所有功...原创 2018-04-20 01:04:37 · 347 阅读 · 0 评论 -
java并发编程的艺术
1 java并发编程的艺术2.1 volatile的应用 volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 1.volatile的定义与实现原理 缓存行:缓存中可以分配的最小存储单位 0x01a3de1d: movb 0×0,0×1104800(0×0,0×1...原创 2018-08-27 14:35:09 · 281 阅读 · 0 评论 -
Object源码详解
(1)private static native void registerNatives();一个本地方法,在static块中类加载时自动调用(本地修饰)。完整名字(2) public final native Class<?> getClass();一个返回object的运行时类,类的完整名字(3)public native int hashCode(); 返...原创 2018-07-24 12:02:48 · 609 阅读 · 0 评论 -
java中this和super的区别
super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)this:它代表当前对象名(在程序中易产生二义性之处...原创 2018-06-09 13:43:09 · 798 阅读 · 0 评论 -
基本数据类和包装类的区别
(1)声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间; (2)存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用; (3)初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null (4)使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collec...原创 2018-06-06 19:41:29 · 825 阅读 · 0 评论 -
进程和线程
1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系一个线程可以创建和撤销另一个线程...原创 2018-06-06 19:40:43 · 127 阅读 · 0 评论 -
异常的注意事项
try、catch和finally这三个关键字不能单独使用,否则编译出错。(2)try语句块后既可以只使用catch语句块,也可以只使用finally语句块。当与catch语句块一起使用时,可以存在多个catch语句块,而对于finally语句块只能存在一个。当catch与finally同时存在时,finally必须放在catch后面。(3)try只与finally语句块使用时,可以使程序在发生异...原创 2018-06-06 19:40:07 · 288 阅读 · 0 评论 -
线程的五种状态
(1) 新建:新创建了一个线程对象。(2)可运行:线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。(3) 运行:可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。(4) 阻塞:阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu ti...原创 2018-06-06 19:38:44 · 231 阅读 · 0 评论 -
接口和抽象类的区别
(1)多继承:一个类可以实现多个接口,一个类只能继承一个抽象类。(2)默认实现:接口只包含接口签名,抽象类可以提供默认实现,子类可以重载抽象类方法。(3)访问修饰符:接口默认所有的方法均为public, 抽象类可以包含protected修饰符。(4)属性与常量:接口中不允许定义任何属性,抽象类中允许定义属性和常量。...原创 2018-06-06 19:35:06 · 156 阅读 · 0 评论 -
使用运算符“==”和equals()方法的区别
(1)==操作符只能用于判断两个比较对象是否属于同一个引用,如果属于同一个引用则返回true,如果不是则返回false,而在equals方法中除了可以判断两个比较对象是否属于同一个引用之外还可以对equals方法进行重载。(2)其次,在对String类型的对象进行比较时,如果采取==操作符,则只有两个变量属于同一对象的引用时才会返回true,而equals方法的比较原理则是只要两个变量的内容相同则...原创 2018-06-06 19:34:43 · 1305 阅读 · 0 评论 -
String和StringBuffer的区别
(1)String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承(2)StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象。它只能通过构造函数来建立对象被建立以后,在内存中就会分配内存空间,并初始保存一个nul...原创 2018-06-06 19:34:02 · 22974 阅读 · 0 评论 -
StringBuffer和StringBuilder的区别
(1)在执行效率方面比较:stringbuilder > stringbuffer(2)在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的。(3)使用方面来讲:.单线程操作字符串 下操作大量数据 用stringBuilder。多线程操作字符串 下操作大量数据 用stringBuffer...原创 2018-06-06 19:33:27 · 123 阅读 · 0 评论 -
同步代码块和同步函数的区别
(1)同步代码块可以绑定任意对象,而同步函数只能绑定该类对象this,static同步函数只能绑定字节码类名.class(2)如果多个线程使用同一个锁的话,那么两者均可以使用,如果存在多个锁的话,只能使用同步代码块...原创 2018-06-06 19:32:18 · 1096 阅读 · 0 评论 -
局部变量和成员变量的区别
(1)成员变量:在类体内定义的变量,可以不显式初始化,可以在类加载时初始化,存于堆内存中。(2)局部变量:在方法内定义的变量,形参,代码块中定义的变量,必须设定初始化值,存于栈内存空间中。...原创 2018-06-06 19:31:40 · 148 阅读 · 0 评论 -
Spring——Boot
1、快速搭建一个spring MVC项目来开头来个Hello World先吧, 第一步,上官网,进行项目原始jar 包的选取,官网在线搭建地址如下:https://start.spring.io/ 看图:特别说明下:在选择你要的jar 包中,一般包括三部分:web部分–包含 了spring、springboot 等常用的web开发必须jar包;spring提供的访问网页的Thymele...原创 2019-05-16 18:17:02 · 219 阅读 · 0 评论