JAVA基础篇 之 类的初始化】的更多相关文章

类中属性的隐式初始化,代码如下,我们看下不同类型默认的初始值是什么 创建一个Demo类如下: class Demo { int a; byte b; short c; long d; boolean e; char f; float g; double h; Demo demo; } 可以看到初始化的值如下: 在类的内部,变量定义的先后顺序决定了初始化的顺序.即使变量定义散布于方法定义之间.它们仍然会在任何方法(包括构造器)被调用之前得到初始化. 我们看如下代码: public class Te…
java基础篇 之 构造器内部的多态行为 ​ 我们来看下下面这段代码: public class Main { public static void main(String[] args) { new Son(5); } } class Person{ void draw(){ System.out.println("person draw"); } Person (){ System.out.println("before person draw"); draw(…
JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**javadoc:文档注释 *有功能,@ */ 标识符和关键字 关键字: 标识符命名规则: 所有标识符都应该以大小写字母,美元符($),下划线(_)开始: 首字母之后可以是大小写字母,美元符,下划线或数字的任何字符组合: 不能用关键字作为变量名和方法名: <阿里巴巴Java开发手册>编写程序时可以用来参…
这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量/方法,都需要在类信息已经加载进入内存的前提下.在Java虚拟机规范中,类加载过程也就是类的生命周期包括7个部分:加载.验证.准备.解析.初始化.使用.卸载.不过我们先不写这几个阶段,先讲讲类加载器的知识,然后再来看具体的类加载过程. 1. 类加载器 关于类加载器,我主要关注两个方面,一是类加载器的…
这是Java基础篇(JVM)的第一篇文章,本来想先说说Java类加载机制的,后来想想,JVM的作用是加载编译器编译好的字节码,并解释成机器码,那么首先应该了解字节码,然后再谈加载字节码的类加载机制似乎会好些,所以这篇改成详解字节码. 由于Java纯面向对象的特性,字节码只要能表示一个类的信息,就可以表示整个Java程序了,JVM只要能加载一个类的信息,就能加载整个程序了.所以,不管是字节码,还是JVM加载机制,关注点都是在类.我关注的点主要在于: 1. 由于字节码不是一次性全部加载进入内存,那么…
java基础篇---I/O技术   对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输入流:数据源到程序(inputStream,Reader读进来) 输出流:程序到目的地(OutPutStream,Writer写出去) 处理数据单元: 字节流:按照字节读取数据(InputStream,OutputStream) 字符流:按照字符读取数据(Reader,Writer) 功能不同 节点…
Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可能很少直接涉及,权当是提高自身水平的知识储备吧. 第一部分:java容器相关 1.问:List 和 Set 都有什么区别? 分析:这种问题面试官一般想考察的都是你对这两种数据结构的了解,已经使用时候的选择依据,所以可以从数据结构和一些使用案例入手分别做个介绍 答:List,列表,元素可重复.常用的实…
java基础篇---HTTP协议   HTTP协议一直是自己的薄弱点,也没抽太多时间去看这方面的内容,今天兴致来了就在网上搜了下关于http协议,发现有园友写了一篇非常好的博文,博文地址:(http://www.cnblogs.com/xdp-gacl/p/3751277.html)作者:孤傲苍狼 一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的…
接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream).使用对象输出流输出序列化对象的步骤,有时也成序列化,而使用对象输入流读入对象的过程,有时也称为反序列化 一个对象产生之后实际上是在内存中为其开辟了一个存储空间,方便存储信息. 对象序列化就是把一个对象变成二进制的数据流的一个方法,通过对象序列化可以反驳的…
Java基础篇 - 强引用.弱引用.软引用和虚引用 原创零壹技术栈 最后发布于2018-09-09 08:58:21 阅读数 4936 收藏展开前言Java执行GC判断对象是否存活有两种方式其中一种是引用计数. 引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1. 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于(reachable)可达状态,程序才能使用它. 从JDK 1.2版本开始…
java基础篇 java基础 目录 1.java是一种什么语言,jdk,jre,jvm三者的区别 2.java 1.5之后的三大版本 3.java跨平台及其原理 4.java 语言的特点 5.什么是字节码,字节码的好处 6.java 和 c++ 的区别 7.java的三大特性 8.java中的基本数据类型和引用数据类型及其区别 9.switch(expr),expr支持哪些数据类型 10.int 和 Integer 有什么区别,怎么理解自动拆箱,自动装箱 11.计算2^3效率最高的方法是 12.…
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils.DBUtils就是JDBC的简化开发工具包.需要项目导入commons-dbutils-1.7.jar才能够正常使用DBUtils工具.安装方式可参考:“http://www.cnblogs.com/yinzhengji…
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法和常用方法: 在Java中File类在IO流中被频繁使用,可以使用一个文件路径来表示在特定位置上的文件,但是需要注意的是这个路径只表示一个文件抽象的概念, 文件到底在不在这个路径下是不确定,换句话说,是不能通过文件路径来判断文件是否存在. 构造方法 File(File parent, String …
深入理解java虚拟机>:类的初始化 类从被载入到虚拟机内存中開始.到卸载出内存为止,它的整个生命周期包含:载入.验证.准备.解析.初始化.使用和卸载七个阶段.当中验证.准备.解析3个部分统称为连接. 类载入的过程包含了载入.验证.准备.解析.初始化五个阶段. 载入.验证.准备.初始化和卸载这5个阶段的顺序时确定的.类的载入过程必须依照这样的顺序按部就班的開始,而解析阶段则不一定,它在某些情况下能够在初始化阶段之后開始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定). 另外注意…
接着上篇http://www.cnblogs.com/oumyye/p/4314412.html java I/O流---内存操作流 ByteArrayInputStream和ByteArrayOutputStream ByteArrayInputStream包含一个内部缓冲区,该缓冲区包含从流中读取的字节,内部计数器跟着read方法要提供的下一个字节.FileInputStream是把文件当做数据源.ByteArrayInputStream则是把内存中的某一个数组单做数据源.ByteArray…
总结个人的面试经历以及一些网上的的面试题,以供以后面试与巩固java基础. 1.String.StringBuilder和StringBuffer的区别 String用于存储不可变字符串的类,StringBuilder和StringBuffer是用于存储可变字符串变量的类: 执行速度:String<StringBuffer<StringBuilder: StringBuilder是线程不安全的,StringBuffer是线程安全的. 2.什么是反射 反射机制是在运行状态中,对于任意一个类,都能…
标签(空格分隔): java基础 一:计算机概述 计算机:硬件和软件 硬件:控制器 运算器 存储器 输入和输出设备       存储器:外存(硬盘) 内存 软件:系统软件 应用软件   系统软件:windows Linux DOS IOS Android Unix macOS           裸机:没有安装操作系统   应用软件:QQ Office MD web APP   二:软件开发与计算机语言 什么是软件?按照特定的组织顺序的数据和指令的集合 计算语言分类 :机器语言(二进制0和1)…
概述 网上关于该题目的文章已经很多,我觉得把它们几个关联起来讲可能更好理解一下.与其它语言一样,它在执行我们写的程序前要先分配内存空间,以便于存放代码.数据:程序的执行过程其实依然是代码的执行及数据的读写过程:除了在执行我们写的显式的可见代码外,Jvm还会自动帮我们帮一些事,包括类的加载.初始化.GC等,这些也不特殊.以下分别来说下这些概念. Java内存结构 这一点基本上同其它高级语言一样,Java包含:堆.栈.本地栈(有些特殊).永久代码区.以下具体说下每个内存区的作用及使用方式   概念…
面向对象程序设计概述 面向对象的程序设计(简称OOP)时当今主流的程序设计范型,已经取代了"结构化"过程化程序设计开发技术,Java是完全面向对象的. 类 类设计构造对象的模板或蓝图,由类构造对象的过程称为创建类的实例. 封装(有时称为数据隐藏)是与对象有关的一个重要概念,从形式上看,封装不过是将数据行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式,封装给对象赋予了"黑盒"特征,这是提高重用性和可靠性的关键. 对象 对象的三个主要特征: 1.对象的行为:可以…
前言 这个系列的文章主要用来记录我在学习和复习Java基础知识的过程中遇到的一些有趣好玩的知识点,希望大家也喜欢. 一切皆对象   对于软件工程来说面向对象编程有一套完整的解决方案:OOA.OOD.OOP,  作为程序员来讲,OOP其实是直接接触最多的.Java中OOP最直接的体现就是java.lang.Object了,一切都是对象(除了原生类型,原生类型的 PrimitiveClass对象由JVM启动时生成和加载),Object类主要就只有这么几个方法,其中getClass是反射的基石,not…
object类 Object 类是所有类的的父类,如果一个类没有明确使用EXPENTS关键字明确标识继承另外一个类,那么这个类默认继承object类,oject类中的方法适合所有子类 1)toString 方法 可以自动生成 在Object类里面定义toString ()方法的时候返回的对象的哈希code码(对象地址字符串) 可以通过重写toString ()方法表示出对象的属性 2)equal()方法 可以自动生成 比较的是对象的应用是否指向同一块内存地址 一般情况下比较两个对象时比较他的值是…
1.简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java 平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出. Java分为三个体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Java 2 P…
#JAVA day01 基础篇 字节类型的使用方法 byte b1 = 126+1; byte b2 = 127+1;//因为127+1得出的结果是int类型,所以不能转换,编译出错 byte b3 = 1; byte b4 = 2; byte b5 = b3+b4;//结果为int类型,必须强转,故这编译出错 byte b6 = (byte)(b3+1);//转化成功 byte b7 = ++b1;​ //b1=-128:因为B7=++1了,所以得数会等于128,接受不了,所以转换成-128…
1.简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java 平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出. Java分为三个体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Java 2 P…
笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在Season类的最上面! * 1.1.values() 返回一个包含整体的数组! * 2.valueof(String name),返回对应name的类, 必须是枚举类对象的名字,否则报错! * 3.实现接口,重写抽象方法 ,不同的枚举类可以有不同的方法 */ 枚举类代码: interface inf…
本文源码:GitHub·点这里 || GitEE·点这里 一.分支语句 流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块. 1.IF条件 IF条件语句会根据不同的判断条件执行不同的语句,if后括号内的条件是否成立关键步骤,IF条件的判断结果必然要是true或false.IF...Else语句则是满足IF条件,就执行相应代码块,否则就执行Elase代码块. public class Process01 { public static void main…
Java 基础 1.JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境. 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具.简单来说:如果你需要运行 java 程序,只需安装 JRE 就…
常用类 字符串相关的类 String类:代表字符串,使用一对 "" 引起来表示. public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for…
简单的代理类实现案例主实现类:ProxyTestimport java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;import java.util.Arrays;import java.util.Random;//为什么需要代理类?因为在实际情况下,我们要构建实现了某些接口的新类,但是我们不知道原始的对象确切类型是什么,另外接口又不能生成实例,有两种解决办法://方法一:通过反射,找到这个类的构造器,但是不能实例化…
本文源码:GitHub·点这里 || GitEE·点这里 一.时间和日期 在系统开发中,日期与时间作为重要的业务因素,起到十分关键的作用,例如同一个时间节点下的数据生成,基于时间范围的各种数据统计和分析,集群节点统一时间避免超时等. 在时间和日期中有几个关键概念: 日期:通常年月日的组合表示当前日期. 时间:通常时分秒的组合表示当前时间. 时区:世界各国家与地区经度不同,划分24个标准时区,相邻时区的时间相差一个小时. 时间戳:从UTC时间的1970-1-1 00:00:00起到现在的总秒数.…