Java
文章平均质量分 60
搬砖小松鼠
贮藏坚果,以备过冬!
展开
-
Spring XML头部配置的理解
Spring XML配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http:...原创 2019-10-17 23:45:10 · 850 阅读 · 0 评论 -
java新手web开发学习笔记--环境的配置
1.jdk(一般包含了jre),部署系统的时候仅需要jre,作为开发人员需要装jdk.环境变量:JAVA_HOME:你的jdk安装目录;CLASS_HOME:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;PATH(系统的环境变量PATH):%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;2.开发工具(ide):原创 2015-05-13 19:42:44 · 365 阅读 · 0 评论 -
java新手web开发学习笔记--基础知识和(struts,hibeinate,spring)ssh框架流程
基础知识:(1)html(2)javascript(3)jsp(4)servlet (5)javaBean(6)Jdbc. 掌握了这些基本知识基本就可以开发走通Web程序开发的从客户端到服务器端,然 后服务器端再返回给客户端的整个流程。三个框架:(1)struts(2)hibernate(3)spring. struts开发的配原创 2015-05-25 18:58:06 · 1489 阅读 · 1 评论 -
java学习笔记知识点整理01
1.java中后期绑定的实现:java使用一小段特殊的代码来替代绝对地址的调用。这段代码使用在对象中存储的信息来计算方法体的地址,而在c++中是使用virtual关键字来实现的。非面向对象编程的编译器产生的函数调用会引起前期绑定。2.堆栈中没分配一个空间,栈顶指针向下移动一位,每释放一个空间,栈顶指针向上移动一位。3.java中==和equals方法默认的都是比较的对象的引用,如果想实现比原创 2016-03-13 16:10:09 · 377 阅读 · 0 评论 -
java学习笔记知识点整理02
1.接口与接口之间继承使用extends,并且支持多继承。前面提到各种同名方法的重载和接口中同名方法的实现要尽量避免,防止程序混乱不堪。原创 2016-03-15 20:48:03 · 356 阅读 · 0 评论 -
java多线程---顺序打印ABC的三种实现---volatile方式
利用volatile的立即可见性:package com.zcj.thread;public class PrintABC2 { private volatile int status =1; public void printA(){ while(status!=1){ } System.out.print("A"原创 2016-05-27 16:50:26 · 1258 阅读 · 0 评论 -
java多线程---顺序打印ABC的三种实现---synchronized方式
利用同步锁,这种方式存在问题就是唤醒的过程中不能指定我说需要唤醒的线程,导致同一个锁上的线程都唤醒了代码如下:package com.zcj.thread;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class PrintABC原创 2016-05-27 16:52:19 · 6021 阅读 · 1 评论 -
java多线程---顺序打印ABC的三种实现---ReentrantLock方式
使用jdk1.5并发包中引入的lock方式,这种方式使用比synchronized这种方式更加灵活,也提供了在获取锁时阻塞的办法代码如下:package com.zcj.thread;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public原创 2016-05-27 16:55:49 · 3029 阅读 · 0 评论 -
java多线程---停止、暂停一个线程
1.使用线程的stop方法,但是这个方法已经被deprecated了,因为使用它会释放锁并停掉线程,但是会出现数据不一致以及重要资源不能正确释放的问题2.使用interrupt方法:调用线程的这个方法会修改线程的中断标志位真,可以通过interrupted和isInterrupted这两个方法来判断线程是否已经被中断,区别是第一个方法在调用之后会把状态改为false,第二个方法则不会使用i原创 2016-05-28 23:13:12 · 3961 阅读 · 0 评论 -
java多线程---等待/唤醒以及生产者消费者经典同步synchronized的实现
一个线程开始执行后就进入等待,然后另外一个线程来唤醒它代码如下:package com.zcj.thread02;public class Thread01 { private static Object object= new Object(); public static void main(String[] args) { ThreadA theA = new原创 2016-05-30 22:45:56 · 429 阅读 · 0 评论 -
java多线程---等待/唤醒以及生产者消费者经典同步Lock的实现
在jdk1.5并发包中引入的Lock,其主要实现重入锁,和读写锁,并且相对于synchronized原生的将锁的获取和释放显示化,并且可以提供了非阻塞的获取锁,并结合condition实现多路分之,将条件更加细化,并且比synchronized效率更高,但是在jdk1.6,对synchronized做出了很多优化,所以性能不一定比lock差,下面给出使用lock来实现等待/唤醒和之前的生产者消费者原创 2016-05-31 13:06:26 · 317 阅读 · 0 评论 -
java多线程---线程的状态
线程是最小的执行单位,也拥有自己的生命周期主要包含以下几个阶段:NEW(新建状态):线程创建了但是还没有执行它的start方法;RUNNABLE(运行状态):包括(RUNNING执行)和READY(准备状态),处于这个状态的线程使用isAlive方法返回为真BLOCK(阻塞状态):线程因为等待锁而处于阻塞队列中WAITING(等待):执行wait(),sleep(),join()等原创 2016-05-31 13:15:59 · 229 阅读 · 0 评论 -
java多线程---顺序打印ABC的三种实现---join方法
使用join方法,让三个线程之间存在等待关系代码如下:package com.zcj.join;public class JoinTest { public static void main(String[] args) { ThreadA threadA = new ThreadA(); ThreadB threadB = new ThreadB(threadA);原创 2016-05-31 15:37:06 · 3930 阅读 · 0 评论 -
java多线程---Executor框架
背景:在java中使用线程来执行进行异步任务,线程的创建和销毁需要一定的开销,若为每一个任务创建一个新的线程来执行,这些线程的创建和销毁会消耗大量的计算资源。Executor框架:将任务映射为固定数量的线程,将工作单元和执行机制分离开来Executor的结构:(1)任务:实现Runnable接口或者Callable接口二者的区别:前者使用run方法,后者使用call方法;前者不可以原创 2016-06-03 14:50:57 · 319 阅读 · 0 评论 -
Arrays.copyOf和System.arraycopy之间的区别
看vector中的源码,发现了有些部分使用的是System.arraycopy,另外一部分使用的Arrays.copyOf,就看了下,发现如果已经明确指定了目标数组和源数组的就是直接用的System的那个方法,如果没有明确指定,则是使用的后者,研究一下源码发现如下关系首先是System.arraycopy的源码public static native void arraycopy(Obje原创 2016-08-03 20:29:06 · 2196 阅读 · 0 评论 -
Java虚拟机相关知识整理
1.java的内存区域线程共享(1)堆:是java虚拟机所管理的内存中最大一块,用于存放对象实例,所有对象实例和数组都在堆上分配基于垃圾收集器分为新生代和老年代,并可以进一步划分为Eden,survivor,默认比例为8:1 Eden、From survivor、To survivor三个部分依据是否开启线程私有的分配缓冲区(TLAB)也存在OutOfMemoryError异常原创 2016-06-30 11:20:25 · 1203 阅读 · 1 评论 -
java多线程---线程的创建方式
线程常见的拥有两种创建方式:使用继承的方式来创建线程有一个弊端就是java类是单继承的,不利于线程类再继承其他的类,所以一般使用实现Runnable接口的方式代码分别如下:package com.zcj.thread;public class ThreadCreateWay { public static void main(String[] args){ Thread01原创 2016-05-28 22:00:26 · 254 阅读 · 0 评论