
java
不断前行的菜鸟_
西安电子科技大学 硕士
展开
-
[重识多线程] 01- java多线程创建
一、什么是线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。操作系统在分配资源时是把资源分配给进程的,但是CPU资源比较特殊,它是被分配到线程的,因为真正要占用CPU运行的是线程,所以也说线程是CPU分配的基本单位。以Java 为例,我们启动一个main函数时,实际上就是启动了一个JVM 的进程,main函数所在的线程就是这个进程的一个线程,也称为主线程。一个JVM进程中有多个线程,多个线原创 2020-06-14 20:21:42 · 337 阅读 · 0 评论 -
Compareable和Comparator的用法
Comparable和Comparator的用法Comparable和Comparator的用法一、Comparable 自然排序二、Comparator 定制排序三、两者之间的差别Java 中为我们提供了两种比较机制:Comparable 和 Comparator 一、Comparable 自然排序Comparable 是排序接口。若一个类实现了Com...转载 2018-07-15 16:20:01 · 12564 阅读 · 1 评论 -
字符串常量池深入解析
字符串常量池字符串常量池概述一、Java中两种创建字符串对象的方式的分析。二、Intern的实现原理(JDK1.8)三、JDK1.7的Intern的执行四:几种特殊的情况的代码参考的部分文章概述 在分析字符串常量池之前,先来分析一下java的内存区域,然后再各种的情况分析一下各种情况下的情况;在《深入理解java虚拟机》这本书上是这样写的:对于H...原创 2018-07-16 21:21:12 · 33061 阅读 · 44 评论 -
Java 中的 ==, equals 与 hashCode 的区别与联系
一、概述1、概念== : 该操作符生成的是一个boolean结果,它计算的是操作数的值之间的关系equals : Object 的 实例方法,比较两个对象的content是否相同hashCode : Object 的 native方法 , 获取对象的哈希值,用于确定该对象在哈希表中的...转载 2018-06-19 16:15:51 · 324 阅读 · 0 评论 -
字符串常量池
字符串常量池字符串常量池1、创建字符串的方式1、创建字符串的方式在Java中有两种方法可以创建一个字符串对象:使用new运算符。例如: java String str = new String("Hello");使用字符串常量或者是常量表达式 java String str="Hello"; //(字符串常量) 或者 Strin原创 2018-06-19 16:11:11 · 1175 阅读 · 0 评论 -
对象序列化为何要定义serialVersionUID的来龙去脉
对象序列化为何要定义serialVersionUID的来龙去脉在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到内存,等要用了,再还原到对象中,说白了,就是能将一个2进制文件变成内...转载 2018-06-23 16:12:48 · 1707 阅读 · 0 评论 -
java中类的加载顺序
1.首先,需要明白类的加载顺序。 (1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) (3) 父类非静态代码块( 包括非静态初始化块,非静态属性 ) (4) 父类构造函数 (5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 ) (6) 子类构造函数静态块:用static申明,JV...原创 2018-06-07 19:39:32 · 225 阅读 · 0 评论 -
String, StringBuffer,StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[]; ...原创 2018-06-07 20:23:10 · 157 阅读 · 0 评论 -
线程同步与死锁(3)
线程同步与死锁线程同步与死锁1、多线程共享数据2、线程同步3、实现线程同步的方法3.1、同步代码块3.2、同步方法3.3、Lock4、死锁1、多线程共享数据在多线程操作中,多个线程有可能同时处理同一个资源,这就是多线程中的共享数据2、线程同步解决数据共享问题必须使用同步,所谓的同步就是指多个线程在同一个时间段内只能有一个线程执行指定的代...原创 2018-05-29 16:37:43 · 714 阅读 · 0 评论 -
线程_join yield 与interrupt线程
join与中断线程(2)join与中断线程(2)1、join2、中断3、自定义标记中断线程1、joinjoin()方法:加入线程让调用的线程先执行指定时间或者是指向完毕异常:InterruptedException-如果任何线程中断当前线程。当抛出异常时,当前线程的中断状态被清除package com.huanghe;/** * @Aut...原创 2018-05-28 11:40:50 · 736 阅读 · 0 评论 -
java并发编程:线程与进程
进程与线程_基础(1)进程与线程_基础(1)1、什么是进程2、进程的状态3、CPU的时间片4、线程基本概念5、并行与并发6、线程的基本使用6.1、一种是继续Thread类,6.2另外一种是实现Runable接口6.3、Thread和Runnable的区别6.3实现Callable接口,并与Future、线程池结合使用7、线程的休眠什么是释放CPU的时间片?...原创 2018-05-28 10:24:21 · 364 阅读 · 0 评论 -
JAVA和C++中数组的区别
JAVA和C++中数组的区别1. 数组名区别java中不用说,本着一切皆对象的原则,所以java中的数组也是对象.那么数组类是哪个,当然不是java.util.Arrays.详见Java数组方法的思考(数组的类名由若干个’[‘和数组元素类型的内部名称组成,’[‘的数目代表了数组的维度)而在c++中数组名其实是一种数据结构,有人会说不是指针吗,关于这一点见(C++中数组名其实是一种数据结构)。从原创 2018-03-23 20:56:08 · 2766 阅读 · 0 评论 -
JAVA中static关键字的解析
JAVA中static关键字的解析1.static关键字的用途 在《Java编程思想》P76中作者是这样说的:当创建类时,就是在描述那个类的外观和行为。除非用new创建那个类的对象,否则,实际并未获得任何对象。执行new来创建对象时,数据存储空间才会被分配,其方法才供外界调用。 有两种情形用上述的方法是无解的:1、只想为特定域分配单一空间,而不去考虑究竟需要创建多少对象...原创 2018-03-23 20:49:10 · 230 阅读 · 0 评论 -
Java创建对象的存储的区域
Java创建对象的存储的区域 在JAVA的世界里一切都是对象,但是操作的标识符实际上的对象的一种“引用”。你拥有一个引用并不需要对象相关联1、对象创建存储的地方寄存器 最快的存储区,位于处理器内部,但是寄存器数量有限,so 根据需求进行分配,不能直接控制,在程序中不能感觉到寄存器的存在。堆栈 位于RAM,通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若原创 2018-03-23 20:48:43 · 2308 阅读 · 0 评论 -
JAVA equals()方法的总结
JAVA equals()方法的总结一、equals()超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下:public boolean equals(Object obj) { return (this == obj); }我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的的内存地址,所以说使用Obj原创 2018-03-23 20:48:07 · 442 阅读 · 0 评论 -
java自动类型转换
java自动类型转换java转型范围,自动转型和强制转型1.自动类型转换也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作设计语法,而是由 JVM 自动完成。转换规则:从存储范围小的类型到存储范围大的类型。具体规则为:byte→short(char)→int→long→float→double注意问题:在整原创 2018-03-23 20:47:38 · 512 阅读 · 0 评论