Java
文章平均质量分 95
SillyDuckkk
来日可期✿
展开
-
Java学习笔记(4): 继承与多态
何谓继承继成共同行为继承就是避免多个类间重复定义共同行为。 比如在游戏中的角色都会具有角色名称,等级,血量等属性,不同角色之间或许只存在某些属性的不同。把角色当作类的话,如果有更多类具有重复的程序代码,想要修改一个类,会造成维护上的不便。如果要改进,就可以把相同的代码提升为父类。package cc.openhome;public class Role { private String原创 2017-11-18 22:45:12 · 309 阅读 · 0 评论 -
JSP&Servlet学习笔记(4): 会话管理
会话管理基本原则使用隐藏域在HTTP协议中,服务器是没有记忆功能的,每个请求对服务器来说都是新请求。 所以就有了隐藏域,隐藏域是主动告知服务器多次请求间必要信息的方式之一。 如何将上一次的结果成为下一次请求的隐藏域呢? 做法之一就是将上一次的结果发送至服务器,由服务器将上一次的结果以隐藏域的方式再响应给浏览器。 比如调查问卷,第一页的结果会在第二页成为隐藏域,当第二页发送后,可...原创 2018-02-28 22:19:23 · 303 阅读 · 0 评论 -
Java的一些基本概念小总结
类是一种抽象的概念,对象是类的一种具体的表现形式。先有类,在生成对象(实例)。类由两大部分构成:属性和方法。一个JAVA源文件只能定义一个public类。JAVA中进行方法的参数传递时,无论是基本类型还是引用类型,都是传值。方法重载:方法名字相同,但参数不同:个数不同和类型不同。继承:extends。继承的三个特点:1,父类有的,子类也有。2,父类没有的,子类可增加。3,父类有的,子...原创 2018-02-28 22:26:20 · 173 阅读 · 0 评论 -
Java基础类库:Date、Calendar类
今天在用Java写一道去年寒假用C语言刷过的一道特别简单的水题的时候,用到了Java类库的Date、Calendar类,不妨写个总结以便下次复习~题目是这样的:给定一个日期,输出这个日期是该年的第几天Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成Output对于每组输入数据,输出一行,表示该日期是该年的第几天Sample Input1985/1/202006/3/原创 2018-03-17 22:52:54 · 348 阅读 · 0 评论 -
Java基础类库:常用类(Object、String、Math、Random类等)
Object类Object类是所有类、数组、枚举类的父类,即Java允许把任何类型的对象赋给Object类型的变量。当定义一个类没有使用extends关键字为它显示指定父类,则该类默认继承Object父类。//常用方法:boolean equals(Object obj)protected void finalize()Class<?>getClass()int h...原创 2018-04-13 00:39:52 · 333 阅读 · 0 评论 -
[Java之泛型]---泛型接口、泛型类、泛型方法、类型通配符
[Java之泛型]—泛型接口、泛型类、泛型方法、类型通配符Java泛型是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。即其本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。...原创 2018-06-12 19:59:00 · 5115 阅读 · 1 评论 -
[Java之内部类]---非静态内部类、静态内部类、局部内部类、匿名内部类
什么是内部类? 通俗的讲,就是把一个类放在另一个类的内部定义,这个定义在其他类内部的类就叫做内部类,这个包含内部类的类就叫做外部类。原创 2018-06-07 18:26:18 · 516 阅读 · 0 评论 -
[Java之Lambda表达式]---让你的代码更简洁
Lambda表达式是什么? Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。 Lambda表达式的本质是“匿名方法”,即当编译我们的程序代码时,“编译器”会自动将“Lambda表达式”转换为“匿名方法”。...原创 2018-06-09 18:42:08 · 1412 阅读 · 0 评论 -
[Java8源码分析]---ArrayList
ArrayList源码分析ArrayList简介我们知道,ArrayList是基于数组实现的List类,完全支持List接口的全部功能,底层实质上就是一个Object[]数组。从源码注释的第一行“Resizable-array implementation of the List interface”中,可以看出ArrayList是List接口的可变长数组实现,即这是一个动态数组,与普...原创 2018-06-29 18:06:53 · 669 阅读 · 1 评论 -
[Java多线程]---将任意对象作为对象监视器
多个线程调用同一个对象中的不同名称的synchronized同步方法或synchronized(this)同步代码块时,调用的效果就是按顺序执行,也就是同步的,阻塞的.synchronized同步方法对其他synchronized同步方法或synchronized(this)同步代码块调用呈阻塞状态同一时间只有一个线程可以执行synchronized同步方法中的代码synchron...原创 2018-12-26 22:31:44 · 1227 阅读 · 1 评论 -
[Java多线程]---volatile和synchronized的底层实现原理
文章目录volatile的实现原理synchronize的实现原理volatile的实现原理当有volatile变量修饰的共享变量进行写操作的时候会多出一行有Lock前缀指令的汇编代码。Lock前缀的指令在多核处理器下会发生两件事情:将当前处理器缓存行的数据写回到系统内存。这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效。原因:多处理器下的缓存一致性协议(MESI),...原创 2019-06-13 17:17:51 · 578 阅读 · 0 评论 -
JSP&Servlet学习笔记(3): 请求与响应
从容器到HttpServlet有关HTTP请求的相关信息,是如何变成相对应的Java对象的呢?当请求来到HTTP服务器,服务器将请求转交给Web容器的时候,Web容器会创建一个代表当次请求的HttpServletRequest对象,并给这个对象设置请求的相关信息。同时,容器也会创建一个作为稍后对客户端进行响应的HttpServletResponse对象。 接着,容器会根据读取的@WebS...原创 2018-02-28 22:19:03 · 710 阅读 · 0 评论 -
Java学习笔记(11): 规则表达式
规则表达式包括两种字符:字面意义字符与元字符字面意义字符:按照字面意义比较的字符元字符:不按照字面比较,在不同情境有不同意义的字符字面意义字符字母和数字在规则表达式中,都是按照字面意义比较,有些字符前加了\之后,会被当作元字符。XY —— X之后要跟随着Y X|Y —— X或Y [XYZ] —— X或Y或Z元字符如! $ ^ * ( ) + = { } [ ] |...原创 2018-02-28 22:16:52 · 512 阅读 · 0 评论 -
Java学习笔记(10): NIO
相对于串流输入/输出使用InputStream、OutputStream来衔接数据源与目的地,NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进行标记,像是标记读取位置、数据有效位置,对于这些区块标记,提供了clear()、rewind()、flip()、compact()等高级操作。Channel架构与操...原创 2018-02-28 22:16:29 · 228 阅读 · 0 评论 -
Java学习笔记(5): 接口与多态
何谓接口接口定义行为在Java中使用interface关键字来定义接口:public interface Swimmer{ public abstract void swim();}接口可以用于定义行为但不定义操作,在这里Swimmer中的swim()方法没有操作,直接标示为abstract,而且一定是public。对象若想拥有Swimmer定义的行为,就必须操作Sw原创 2017-11-19 21:39:30 · 298 阅读 · 0 评论 -
Java学习笔记(1): 从JDK到IDE
什么是JVMJVM(Java Virtual Machine), 即Java虚拟机. Java是个高级语言, 要让计算机执行程序, 必须通过编译程序的翻译. 不过Java编译时(原始码扩展名.java)并不直接编译为相依于某平台的0,1序列, 而是翻译为中介格式的位码(.class). 要想执行位码文档(可执行文件), 目标品台必须安装JVM, 它将位码翻译位相依于平台的机器码区分JR原创 2017-11-01 21:14:05 · 368 阅读 · 1 评论 -
Java学习笔记(2): 类与对象
Java中有基本类型与类类型两个类型系统,这章主要来谈类类型。Java是一门面向对象的语言,不是像C语言那样面向过程,所以更适合解决现实生活中的一些问题。定义类class Clothes { String color; char size;}定义类使用class关键词,后面的Clothes相当于为这个类取名。在这个类中,定义了两个值域成员(对象数据成员)。原创 2017-11-02 02:10:47 · 260 阅读 · 0 评论 -
Java学习笔记(3): 对象封装
封装封装对象初始流程package cc.openhome;class CashCard { String number; int balance; int bonus; CashCard(String number,int balance,int bonus) { this.number = number; this.ba原创 2017-11-05 17:39:07 · 1045 阅读 · 0 评论 -
Java学习笔记(6): 时间与日期
认识时间与日期时间的度量格林威治标准时间:GMT,通过观察太阳而得世界时:UT,通过观测远方星体跨过子午线而得国际原子时:TAI,将秒定义为铯原子辐射振动9192631770周耗费的时间,时间从UT的1958年开始同步世界协调时间:UTC,采用了闰秒修正Unix时间:用以表达时间轴上某一瞬间epoch:某个特定时代的开始,时间轴上某一瞬间 实际上谈到时间指的是UTC时间 秒的单原创 2017-12-11 18:11:35 · 342 阅读 · 0 评论 -
JSP&Servlet学习笔记(1): Web应用程序简介
Web应用程序基础知识Web应用程序是由客户端与服务器端两部分组成。客户端基本是浏览器,服务器端是HTTP服务器,浏览器会请求服务器上放置的文件或资源。关于HTMLHTML是以标签的方式来定义文件结构,标签通常成对。 当浏览器从服务器取得这份HTML文件之后,就可以按照其中的结构等信息进行画面的绘制。URL、URN、URIUniform Resource Locator/Na原创 2017-12-18 20:38:10 · 474 阅读 · 0 评论 -
JSP&Servlet学习笔记(2): 编写与设置Servlet
第一个Servlet程序package cc.openhome;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.h原创 2017-12-19 00:47:45 · 985 阅读 · 1 评论 -
Java学习笔记(7): 异常处理
异常的概念JAVA异常是JAVA提供的用于处理程序中错误的一种机制,这个错误指的是运行期出现的错误(如除0溢出、数组下标越界、所要读取文件不存在等),而非执行期;观察错误的名字和行号最重要。JAVA程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给JAVA运行时系统,这个过程称为抛出。当JAVA运行时系统接收到异常对象时,会寻找能处理这一异...原创 2018-02-28 22:14:30 · 202 阅读 · 0 评论 -
Java学习笔记(8): Collection与Map
容器:Java API 所提供的一系列类的实例,用于在程序中存放对象,也称集合。JDK所提供的容器API位于java.util包内。 Java 集合框架主要结构图: 如上图所示,Java容器有两种基本类型Collection 和Map。其中Map的结构比较简单,而Collection的结构就相对复杂一些。Collection有三个继承接口:List、Queue和Set。Coll...原创 2018-02-28 22:15:00 · 423 阅读 · 0 评论 -
Java学习笔记(9): 输入/输出
Java流式输入/输出原理在Java程序中,对于数据的输入/输出操作以“流”(Stream)方式进行;提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。输入/输出流的分类java.io包中定义了多个流类型来实现输入/输出功能;可以从不同的角度对其进行分类:按数据流的方向不同可以分为字节流和字符流。按处理数据单位不同可以分为字节流和字符流。...原创 2018-02-28 22:16:06 · 213 阅读 · 0 评论 -
[Java多线程]---原子操作的实现原理
处理器提供总线锁定和缓存锁定两个机制来保证复杂内存操作的原子性。使用总线锁保证原子性想要保证读改写共享变量的操作是原子的,就必须保证CPU1读改写共享变量的时候,CPU2不能操作缓存了该共享变量内存地址的缓存。总线锁就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被则阻塞住,那么该处理器就可以独占共享内存。使用缓存锁保证原子性因为总线锁会把CP...原创 2019-06-14 16:21:57 · 371 阅读 · 0 评论