Java编程
文章平均质量分 81
sdr_zd
这个作者很懒,什么都没留下…
展开
-
Java中的“==”和equals()
1.“==”:A:比较基本类型:比较值 B:比较引用类型:比较对象的地址值2.equals():只能比较引用类型,在Object类中有该方法的定义,其作用是比较两对象的地址。但是比较地址值并没有实际意义,而且Object是所有类的父类,被所有类继承,一般在调用的时候都会重写该方法,比如在String类中,被重写为boolean equals(Object anObject),返回的原创 2016-07-26 15:09:11 · 281 阅读 · 0 评论 -
浅谈缓存一致性原则和Java内存模型(JMM)
Java内存模型(JMM)是一个概念模型,底层是计算机的寄存器、缓存内存、主内存和CPU等。 多处理器环境下,共享数据的交互硬件设备之间的关系: JMM: 从以上两张图中,谈一谈以下几个概念:1.缓存一致性协议(MESI):由于每个处理器都含有私有的高速缓存,在对缓存中数据进行更新后,其他处理器中所含有的该共享变量的缓存如果被处理器进行读操作,就会出现错误。有些计算机采用LO...原创 2018-08-01 04:19:55 · 6859 阅读 · 1 评论 -
volatile和乐观锁悲观锁
最近想学习一些并发的内容,感觉是很复杂的一个体系,看到两篇非常好的博客分享一下 《volatile关键字解析》 从并发的引入包括内存模型开始讲,对volatile关键字的原理从汇编结果的角度讲解清晰 《Java并发问题–乐观锁与悲观锁以及乐观锁的一种实现方式-CAS》 清晰的说明了悲观锁与乐观锁的区别,并对乐观锁的原理进行了剖析...转载 2018-03-19 11:00:20 · 1556 阅读 · 0 评论 -
Servlet处理一个上传的文件
Servlet中可以使用post请求上传文件一.使用getReader()和getInputStream()<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>title> </head> <body>原创 2017-09-12 23:26:57 · 561 阅读 · 1 评论 -
Java8新增的Lambda表达式
一.Lambda表达式入门Lambda表达式支持将代码块作为方法参数,允许使用更简洁的代码来创建只有一个抽象方法的接口(函数式接口)的实例。 Lambda表达式的语法分为三部分: - 形参列表:形参列表允许省略形参类型,如果形参列表中只有一个参数,甚至连形参列表的圆括号也可以省略。 - 箭头(->):左侧是形参列表,右侧花括号内的内容是代码块。 - 代码块:重写的方法的代码。如果原创 2017-08-04 21:35:30 · 382 阅读 · 0 评论 -
Java异常之throws和throw 以及异常使用注意的原则
一.使用throws抛出异常如果在当前方法不知道该如何处理该异常时,则可以使用throws对异常进行抛出给调用者处理或者交给JVM。JVM对异常的处理方式是:打印异常的跟踪栈信息并终止程序运行。 throws在使用时应处于方法签名之后使用,可以抛出多种异常并用英文字符逗号’,’隔开 e.g.1 public void throwsTest() throws ExceptionClass1, E原创 2017-07-21 21:20:20 · 34283 阅读 · 0 评论 -
java异常处理之try...catch...finally详解
异常处理机制已经成为判断一门编程语言是否成熟的标准之一,其对代码的健壮性有很大影响。一直以来异常处理使用不是很得心应手,今天对异常进行了较为深入的学习,这篇主要是对try…catch…finally的一个总结。一.java继承体系 Java语言为异常处理提供了丰富的异常类,这些类之间有严格的继承关系。如图: 从图中我们可以看出,所有的类都是继承于Throwable这个父类,java将所有原创 2017-07-17 22:11:51 · 3675 阅读 · 1 评论 -
关于Checked异常和UnChecked异常(即RuntimeException)
在写完上一篇博客之后总感觉还是没有将Checked异常和Runtime异常分清,在查找资料看博客以及一些api文档之后想用简单易懂的语言将这两者做义工简单的阐述。 大家都知道,Exception类下分为RuntimeException(即unchecked异常)和其他异常(即checked异常)。 1. Checked异常,顾名思义,是可检查的异常,即在编译阶段IDE会提示让程序员对该异常进行原创 2017-07-19 11:19:31 · 3790 阅读 · 0 评论 -
Java集合总结
集合和数组在存储数据的时候是各有优缺点的,先总结下集合和数组的区别1.数组长度固定,集合长度不固定2.数组只能存储同一类型的元素,集合可以存储不同数据类型(在引入泛型后,可以规定元素的类型相同)3.数组可以存储基本类型也可以存储引用类型,集合只能存储引用类型集合分为两大类,Collection和MapCollection:是超级接口,需要由实现类去实现接口,存储单列元素原创 2016-08-10 10:16:09 · 396 阅读 · 0 评论 -
计算器核心算法代码实现(Java)
在进行一个表达式的计算时,先将表达式分割成数字和字符串然后利用出入栈将分割后的表达式进行中缀转后缀,再将后缀表达式进行计算得到结果(思想在上一篇写过)现在贴下Java语言的代码实现。(学习Java时间不长所以可能会有很多不足的地方,我会改进也欢迎大神可以给我一些意见和建议~谢谢啦)我将这部分分成三个方法完成功能,并在getResult方法调用(getResult方法被主方法调用) p...原创 2016-08-06 13:45:36 · 1584 阅读 · 0 评论 -
Date和Calendar类的一些使用
调用Date类计算从出生到现在过去多少天,代码及注释如下:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;public class DateYourDays { public static void mai原创 2016-07-27 21:44:19 · 571 阅读 · 1 评论 -
Java中String和StringBuffer、StringBuilder
1.String和StringBuffer、StringBuilder:String是不可改变的,但StingBuffer和StringBuilder是可以改变的。在操作时,String会在常量池中开辟多个新的空间,StingBuffer和StringBuilder直接改变值,大大降低了对空间的浪费。2.在API中这样介绍StringBuffer和StringBuilder:S原创 2016-07-26 20:51:54 · 294 阅读 · 0 评论 -
深入理解volatile的内存语义,并通过volatile写一个线程安全的单例
前言:对缓存一致性协议以及内存屏障和happens-before原则不太了解的小伙伴建议先百度google维基一下或移步的我的另一篇博客《浅谈缓存一致性原则和Java内存模型(JMM)》之后再看这篇博客更好理解哦 在研究Java并发包之前一直以为volatile关键字只是一个打辅助的,之后发现J.U.C包的底层就是依靠volatile关键字和CAS实现的。那我们现在就来看一看volatile...原创 2018-08-07 12:49:32 · 1918 阅读 · 5 评论