
Java
贝西晨
It's time.
展开
-
java之Runnable和Thread区别与实现方法
1、多线程中start()和run()方法的区别1) start: 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,R原创 2017-07-15 14:14:13 · 1807 阅读 · 0 评论 -
IDEA创建maven-web出现的问题[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3
问题截图原因:maven的类库出现了问题解决方法:修改 G:\apache-maven-3.5.0\conf下的setting.xml 添加 <localRepository>D:\maven\repository</localRepository>如图 控制台输入:mvn help:system 然后查看自己配置的目录是否有respository文件夹,有就说明已经可以使用 接下来再IDE原创 2017-10-21 12:40:43 · 36644 阅读 · 3 评论 -
重写和重载知识总结
重写(override)是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,重写内在实现!(重写的好处在于子类可以根据需要,定义特定于自己的行为。)声明为final的方法不能被重写。 声明为static的方法不能被重写,但是能够被再次声明。 构造方法不能被重写。 访问权限不能比父类中被重写的方法的访问权限更高。重载(overloading) 是在同一个类里面原创 2017-09-24 10:28:49 · 281 阅读 · 0 评论 -
算术左移(<<),算术右移(>>),逻辑右移(>>>)
1. <<,算术或符号左移位 16>>3相当于16*23,高位移出(舍弃),低位的空位补0。 2. >>,算术或符号右移位 16>>3相当于16/23,低位移出(舍弃),高位的空位补符号位,即正数补0,负数补1 (左乘右除) 上面两个会保留符号(符号位不变) 3. >>> 逻辑右移位,不保存符号,低位移出(舍弃),高位的空位补0,仅对int,long有效 如1原创 2017-10-09 20:52:43 · 3800 阅读 · 0 评论 -
进程之间、线程之间的通信方式总结
1、线程之间的通信方式有:锁机制(互斥锁、条件变量、读写锁)、信号量、消息队列、事件、全局变量2、进程之间的通信方式有:管道、信号量、消息队列、条件变量、共享内存、套接字(socket)在万能百度可以查到各种用法及介绍 我就顺便简单的说一哈: 管道又分为: 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。(进程的亲缘关系通常是指父子进程关原创 2017-09-20 09:30:28 · 803 阅读 · 0 评论 -
会话跟踪技术的四种实现方法及特点整理
1. 什么是会话会话是指一个终端用户(服务器)与交互系统(客户端)进行通讯的过程。2. 什么是会话跟踪对同一个用户对服务器的连续的请求和接受响应的监视,(将用户与同一用户发出的不同请求之间关联,为了数据共享)3. 为什么需要会话跟踪浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是”无状态”的协议,它不能保存客户的信息,即一次响应完成之后连接就断开了,下一次的请求需要重新连接,这转载 2017-10-09 17:10:42 · 14109 阅读 · 0 评论 -
匿名内部类特点及注意
匿名内部类的特点及注意:匿名内部类也就是没有名字的内部类,无class关键字,直接使用new来生成一个对象的引用正因为没有名字,所以匿名内部类只能使用一次匿名内部类还有个前提条件:必须继承一个父类(抽象类,普通类)或实现一个接口(两者不可兼得,并且只能是一个),它相当于一个具体类(只是没有名字),所以可以使用new不能存在任何的静态成员变量和静态方法。不能是抽象的,它必须要实现继承的类或者实原创 2017-10-09 12:17:52 · 5556 阅读 · 2 评论 -
Java守护线程和main线程整理
Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。 Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 GC (原创 2017-10-09 09:40:45 · 5868 阅读 · 0 评论 -
抛出异常throw和throws总结
抛出异常主要有三种形式:throw(语句抛出的一个异常)throws(声明方法时,该方法可能抛出的异常)系统 自动抛出异常throw和throws的区别:1、throws出现在方法函数头可以单独使用 public void doA(int a) throws Exception1,Exception3{……}; 而throw出现在函数体且需和trycatch或throws一起使用, t原创 2017-10-08 20:39:41 · 1795 阅读 · 0 评论 -
Final、Static用法总结
首先介绍一下静态变量和类变量 静态变量也称为类变量,属于类,不属于类的任何一个对象,在内存中有且仅有一个拷贝,多个对象共享内存空间。 实例变量,依存于某个实例,须先创建对象才能通过对象访问。静态方法只能访问静态成员,因为非静态方法的调用要先创建对象,在调用静态方法时可能对象并没有被初始化。final(1)修饰类:表示该类不能被继承; (2)修饰方法:表示方法不能被重写; (3)修饰变量:表示原创 2017-09-24 10:55:32 · 394 阅读 · 0 评论 -
Java的垃圾回收机制(GC)总结
1.垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(如数据库连接,网络IO等资源) 2.程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候运行。当对象永久的失去引用后,系统会在合适的时间回收其占用的内存。 3.在垃圾回收机制回收任何对象之前,总会先调用它的finalize()方法。**垃圾回收(GC)算法总结:** 1. 标记-清理 标记:标记的过程其实就是转载 2017-09-28 15:21:46 · 324 阅读 · 0 评论 -
JVM类加载过程,JDK和JER区别
java类被加载过程类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成: ①加载(以二进制形式来生成Class对象) ②链接(又分为验证、准备和解析) 校验:检查导入类或接口的二进制数据的正确性; 准备:给类的静态变量分配并初始化存储空间; 解析:将符号引用转成直接引用; ③初始化(激活类的静态变量和静态代码块、初始化Java代码)先初始化静态成员,然原创 2017-09-24 11:25:50 · 554 阅读 · 0 评论 -
String,StringBuffer,StringBuilder
String 字符串常量(不会更改对象本身,长度不可变);StringBuffer 字符串变量(线程安全),是一个容器,最终会通过toString方法变成字符串;StringBuilder 字符串变量(非线程安全)单线程使用。如果频繁操作字符串使用StringBuffer和StringBulider 单线程情况下:StringBulider比StringBuffer的效率高原创 2017-09-24 13:55:36 · 158 阅读 · 0 评论 -
Java中创建对象的几种方式
Java创建对象的几种方式:(1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法。(实现Cloneable接口并重写Object类中的clone()方法) (4) 运用反序列化手段,调用jav原创 2017-09-24 13:53:32 · 288 阅读 · 0 评论 -
抽象类和接口特点及区别总结
抽象类1.抽象类中可以构造方法 2.抽象类中可以存在普通属性,方法,静态属性和方法。 3.抽象类中可以存在抽象方法。 4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。 5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。 接口1.在接口中只有方法的声明,没有方法体。 2.在接口中只有常量,因为定义的变量,在编译的时候原创 2017-09-24 09:57:36 · 5847 阅读 · 0 评论