Java语言中,类的构造方法是一种很特殊的方法。关于构造方法要记忆和理解的知识点其实挺多的,下面我们就来详细的讲讲构造方法,相信看过这篇文章之后,你会对构造方法有一个比较深刻的认识和理解。(预警:此文较长,请耐心看完!)首先来说说构造方法的五个特点:一、构造方法的名称必须与类的名称相同。比如类的名称叫A,那么它的构造方法必须也叫A。二、构造方法的前面不能声明返回值类型,即便是void也不行。
很多初学Java语言的小伙伴,在学到“面向对象”这块内容的时候,都会学到的一个概念,那就是“方法的重写”。重写又叫覆盖,英文名为“Override”。虽然”重写”、 ”覆盖”、“Override”这些名词都很容易记住,但很多人并没有真正理解Java语言为什么要提供“重写”这种编程机制,也不知道什么时候该重写父类中的方法,下面我们通过一篇文章来全面学习一下“方法的重写”。假设有一个类叫做Fathe
学习Java编程的时候,无论是谁,当学到面向对象这部分内容时都会遇到一个关键字:this。很多初学者对这个关键字的都会感觉到理解不透,不明白这个神秘的”this”到底表示什么意思。按照官方正规的解释,this关键字的意义被解释为“指向当前对象的引用”。这个解释非常准确并且很精炼,但它太过学术化了,导致很多初学者有点读不懂,更谈不上深入理解它的意义。本文将用大白话的形式帮助初学Java的小伙伴来深
首先来看一段代码我们把这段代码称为代码①,接下来我们再来看另外一段代码我们把这段代码称为代码②。在代码①当中,定义了一个方法,这个方法声明的返回值类型是double,而实际通过return关键字返回的却是一个int型的值,但并没有引起编译错误。而在代码②当中,情况正好相反,方法声明的返回值类型是int,方法内部的return关键字实际返回了一个double类型的值,在这种情况下,编译器却报出
我们知道,在Java语言中有三种循环,分别是while循环,do…while循环和for循环。其实,从JDK1.5开始,又引入了一种增强型for循环,这种新型的for循环主要是用来遍历数组或集合的,它的格式非常简单,下图展示了增强型for循环的基本结构:增强型for循环被设计出来就是为了遍历数组或者是集合的,所以在循环中都会指定一个数组或者是集合。为了方便程序员编码,增强型for循环不再通过”下
接上篇七、判断某数是不是2的N次幂我们知道,10的0次幂是1,1次幂是10,2次幂是100...仔细观察一下这些数,你就会发现一个规律,那就是:这些数字当中,开头是1,后面N位上的数字全部是0。这是我们用十进制表示数字所得到的一个规律。同理,如果用二进制表示数字的话,那么对于2的N次幂也有相同的规律。用二进制表示2的0次幂为1,2的1次幂为10,2的2次幂为100...规律很明显,也1开头,后面
接上篇五、字符串加密在很多场合下,都需要给字符串进行加密,使字符串由”明文”变成”密文”。对字符串加密有很多种算法,其实我们利用位运算也可以实现简单的加密效果。用位运算实现加密的原理很简单,这里为大家讲解一下。假设有两个整数a和b,a^b的结果为c。我们可以认为a就是原始数据,a与b进行异或运算所得到的c就是加密后的数据,b在加密过程中扮演着”密钥”的角色。在不知道b值的情况下,如果只是知道c的
接上篇三、不借助中间变量交换两个变量的值通常情况下,我们要交换两个变量的值都按如下步骤操作:这种操作方式不难理解,实现交换变量值的关键点就在于中间变量c。而现在的题目要求是不借助中间变量来交换a和b的值。如果不使用位运算的方式,同样可以做到不借助中间变量交换两个变量的值,其实现过程如下。为了讲解方便,我们把最初a与b的值称之为原始a和原始b,3行代码就是3步操作:第1步:把原始a与原始b相
很多人认为位运算在实际开发过程中并没什么用,学习位运算也只是为了应付面试。这种想法是错误的,接下来我们就通过几篇连载文章介绍一下位运算在实际开发过程中的几个经典应用实例。如果对位运算规则掌握还不是很熟练,可以先阅读《Java千问16:Java语言位运算符详解》。这篇文章不仅详细讲解了Java位运算的基本规则和一些常用的运算定律,同时还在文中提到了一些常用的位运算实际应用,比如可以用位运算
很多编程语言都有位运算符,Java语言也不例外。在Java语言中,提供了7种位运算符,分别是按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)、带符号右移(>>)和无符号右移(>>>)。这些运算符当中,仅有~是单目运算符,其他运算符均为双目运算符。在讲解这些运算符的使用之前,必须了解一个常识,那就是:位运算符是对long、int
我们在生活中用到数字,都是以十进制的方式计数的。稍有计算机常识的人都知道,计算机中是以二进制的方式计数的,另外在计算机中表示颜色经常会用到十六进制的数字,此外在其他一些领域还会用到八进制的数字。那么二进制、八进制、十进制、十六进制的数字,究竟是怎样计数的?它们之间是怎样相互换算的?本文就来详细说说这两个问题。一、多种进制的计数方法首先来说我们最熟悉的十进制。十进制计数法有10个原始的数字,分别
同很多高级编程语言一样,Java语言的运算符系统当中也有自增(++)和自减(--)这两个运算符。很多小伙伴对这两个运算符都深感头疼,并且很多公司在面试的时候也经常会问到与之相关的问题,今天我们就通过一篇文章来深度解析一下这两个运算符,相信在看过这篇文章之后,你再也不会被自增(++)和自减(--)运算符难住。由于自增和自减运算符的原理完全相同,所以我们在讲解的时候仅以自增运算符举例。(预警:本文举
我们在进行Java开发的时候,经常会用到循环结构,但是有几个关于循环的“冷门”知识点,不知道你是不是都已经掌握了呢?我们一起来看看一、大括号可以不写吗? 我们都知道,如果每次循环过程中要执行的语句只有一条,那么就可以不用写大括号。但事实真的如此吗?请看下面的代码:大家可以看到,在循环中只有一条语句,但是并不能通过语法编译。这是为什么呢?因为Java语言规定:循环语句中重复执行的语句不能是一条单
几乎所有的高级语言当中,都提供了一种叫做”数组”的东西,Java语言当然也不例外。我们通过数组可以很方便的存储和管理一组数据。因为在Java语言当中使用数组非常的方便,所以导致很多初学者忽略了对数组的深入学习,本文就通过七个问题,来帮助初学者深入理解一下Java语言的数组到底是怎么回事。一、数组是变量的简单叠加吗?我们在学习Java的时候,知道一个int类型的变量可以存储一个整数,而一个int类
Java语言当中提供了一个叫做instanceof的运算符。很多教科书上对这个运算符的介绍并不详细,只是简单的说这个运算符是用来判断某个对象是不是属于某种类型。我们现在就用一篇短文介绍一下instanceof的运算符的作用和注意事项。请看下面的代码片段代码中定义了一个接口和两个类。大家记清楚它们之间的关系:Person类实现了Moveable接口,Student类继承了Person类。紧接着我们
我们都知道,Java语言中有个boolean类型。每个boolean类型的变量中存储的是一个true或者是false的逻辑值。那么存储这个逻辑值,需要多大的空间呢?从理论上来讲,存储这个逻辑值只需要1个位(bit)就可以了,很多教科书上谈到这个问题的时候,也说boolean类型的数据在内存中只占1个位。但是稍微有点计算机常识的人都知道:计算机完成寻址操作的时候,是以字节为最小单位进行的。也就是说
很多程序设计语言都使用”==”来判断两个数据是否相等,我们在编程中也经常使用这个运算符,以至于对它已经熟视无睹。那么是不是任意两个数据都可以使用”==”来判断相等呢?”==”比较的到底是什么?我们今天就通过一篇短文来聊聊这个不起眼的”==”运算符。一、基础数据类型之间的比较首先我们来看一段代码这段代码当中,声明了8个基础类型的变量,这8个变量当中,boolean型的flag是个“异类”,为什么
我们知道,在Java以及很多高级编程语言当中,都有一种运算符叫做复合赋值运算符。复合赋值运算符由两个符号组成,它所能完成的运算操作也分为两步:第一步是运算,第二步是赋值。比如说:上面的这两条语句相当于但是,如果碰到下面这样的情况,a的值该应该是多少呢?有人认为应该按以下方式来计算,因为我们都知道,在四则运算规则中,遵循“先乘除,后加减”的原则按照这样的方式来计算,得到a的值应该是7,但实际运行程
我们在进行Java编程的时候,使用最频繁的数据类型基本上就是int型了。平时在使用这种数据类型的过程中,我们似乎也并没有感觉到有什么太多需要注意的地方,其实int类型的变量在使用过程中也会有一些隐藏很深的坑,我们通过一篇短文来了解一下。首先我们先来明确一下Java虚拟机在对int型数据进行处理时默认的两条规则1. 当程序出现“整型常量”的时候,默认都是以int型存储的2. 如果算术表达式中出
已知Java语言中int类型所能表示的最大整数为2147483647,请问以下代码执行结果是什么?一部分人都会认为这段程序压根就无法通过编译,也有人认为,这段程序能够通过编译,但在运行时会抛出异常,但更多的人面对这道题目根本就无从下手。那么正确答案是什么呢?首先告诉大家,这段程序能够顺利通过编译,并且在运行时也不会出现异常,运行的结果是在控制台上输出了数字-2147483648!而-214748
咱们先来看一段很简单的Java代码这段代码非常简单,没有任何技术含量。但是,如果我们把这段代码改成下面的样子大家可以看到,我们只是用一个变量a代替了原来赋值表达式当中的常量1,就会出现语法错误,这是为什么呢?今天我们就用一篇短文来聊聊这个话题。我们知道,Java语言中有4种整数类型,分别是byte、short、int和long。其中,Java编译器对byte和short类型的变量在赋值的时候,做
Java程序中总是会出现一些数字。我们通常都是用常规的方式来表示这些数字,如以下代码所示int a = 1;double b = 1.5;但是数字也可以有非常规写法,在这里我们用一篇短文简单总结一下一、整数的非十进制写法首先强调一下,这里所说的整数并不是单指int类型,而是包含了int、byte、short和long这4种整数类型。在Java语言中,除了可以用十进制的形式表示整数以外,还可以用二
大家都知道,Java语言运行程序的入口方法叫做main,这个方法有一个参数,这就表示说,我们要运行主方法,就必须给main方法传递一个参数。但是,大家似乎对这个参数向来都是视而不见,从来都没给主方法传递过参数。main作为Java程序运行的第一个方法,我们应该从哪里给这个方法传递参数呢?今天我们就用一篇短文来聊聊这个话题。一、如何给main方法传递参数大家请看下面这段代码这是一段谁都能看懂的代码
我们在初学Java语言的时候,老师给我们讲的第一个例子往往是用记事本编写打印“Hello World”的程序。当写完程序后,老师一般都会要求我们把源文件的名称命名为与类名相同,比如,类的名称叫A,那么源文件的名称也叫A。很多同学按老师的要求做了,也成功的运行出了“Hello World”。没按老师要求做的,可能连编译都无法成功。于是很多初学者都认为,Java程序的源文件名必须与类名相同,那么真实
我们在学习搭建Java开发环境的时候,老师总是让我们先安装JDK,紧接着又让我们去配置环境变量,之后才能动手编写Java程序。很多同学按照老师的步骤去做,成功的搭建好了Java开发环境,并且运行出了自己的第一个Java程序,感到非常有成就感。 那么,为什么在安装了JDK之后要配置环境变量呢?很多同学对这个问题其实并不清楚,只是知道如果不配置环境变量,就没法进行Java开发。今天,咱们就来聊聊为什么
开博首贴
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号