专业的JAVA编程教程与资源

网站首页 > java教程 正文

JAVA编程基础知识点(java编程基础知识点总结)

temp10 2024-10-07 15:45:20 java教程 11 ℃ 0 评论

java是一门面对对象的编程语言,这是一种很惟妙的编程思维,世界万物都可以抽象成类,而我们只需创建这些类的对象就可使用这些类。接下来我与大家分享一些java编程的知识点吧。

一丶方法调用类的别名问题

JAVA编程基础知识点(java编程基础知识点总结)

class Letter{Char c;}public class PassObject{static void f(Letter y){y.c = 'z';}public static void main(String[] args) { Letter x = 'a';x.c = 'a';System.out.println("1.x的c值为:"+x.c);f(x);System.out.println("2.x的c值为:"+x.c);}}

这段代码的运行结果为:

x.c:a

x.c:z

方法f()似乎要在他的作用域内复制其参数Letter y的一个副本;但实际上只是传递了一个引用。所以 y.c=‘z’:实际改变的是f()之外的对象。



二丶关系操作符

关系操作符生成的是boolean (布尔)结果,它们计算的是操作数的值之间的关系。如果关系是真实的关系表达式会生成true(真);如果关系不真实,则生成false(假)。关系操作符包括小于(<),大于(>),小于或等于(<=),大于或等于(>=),等于(==)以及不等于(!=)。等于和不等于适用于所有的基本数据类型,而其他比较符不适用boolean类型。因为boolean值只能true或false,“大于”和“小于没有实际意义。

测试对象的等价性

关系操作符==和!=也适用于所有对象,但这两个操作符通常会使第次接触Java的程序员感到述惑。下面是一个例子:

Public class Equivalence{ public static void main(String[] args) { Integer n1 = new Integer(47);Integer n2 = new Integer(47);System.out.println(n1==n2);System.out.println(n1!=n2);}

语句System.out.println(n1 == n2)将打印出括号内的比较式的布尔值结果,大家可能认为输出结果肯定先是true,再是false, 因为两个Integer对象都是相同的。但是尽管对象的内容相同,然而对象的引用却是不同的,而 == 和 != 比较的就是对象的引用。所以输出结果实际上先是false,再是true。



如果想比较两个对象的实际内容是否相同,又该如何操作呢?此时,必须使用所有对象都适用的特殊方法equals()。但这个方法不适用于“基本类型”,基本类型直接使用==和!=即可。

下面举列说明如何使用:

public class EqualsMethod{public static void main(String[] args){Integer n1 = new Integer(47);Integer n2 = new Integer(47);System.out.println(nq.equals(n2));}}

输出结果为:true,结果与我们预想的一样。但事情并不总是这么简单,因为equals()的默认行为是比较引用,所以当我们比较自己新建的类中如果要使用equals()就必须覆盖equals()方法。负责不会出现我们想要得到的结果

好了,今天的java知识点分享到此结束,接下来我为大家准备了一道有趣的算法题,感兴趣的同学可以了解一下哦。

算法题:删除排序数组的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用0(1)额外空间的条件下完成。

示例1:



示例2:



说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:



解决方案

方法:双指针法

算法:

数组完成排序后,我们可以放置两个指针i和j,其中i是慢指针,而j是快指针。只要nums[i] =nums[j],我们就增加j以跳过重复项。

当我们遇到nums[j] != nums[i]时,跳过重复项的运行已经结束,因此我们必须把它(nums[j])的值复制到nums[i+1]。然后递增i,接着我们将再次重复相同的过程,直到j到达数组的末尾为止。



来源网络,侵权删除

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表