为了账号安全,请及时绑定邮箱和手机立即绑定

Java与Js差异总结-基础篇

标签:
Java JavaScript

作为一只写js的猿,上手java肯定会觉得它真的好繁琐。所以,一步一步来吧,菜鸟上路,从基础开始,各路大神多多指教。

数据类型


''和""的区别

在js中''""是没有什么区别的,基本上可以使用单引号的地方就可以用双引号代替,在没有模板字符串时进行字符串的拼接可能会把两者结合使用。
但是在Java中,''里的内容是单个字符,属于char类型;而""则代表字符串,属于String类型。

double和float

double不是double kill的意思,float也不是浮动的意思。他们代表的是浮点型的小数。double是17位有效数字的双精度类型,比float的8位单精度类型更精准。
默认情况下小数是double类型的,如果要用float需要在最后加上f。而double类型的d是可以省略的。

double price=120.5;
float height = 175.8f;

自动类型转换和强制类型转换

如果是从int转到double,或者从float转到double都是可以自动进行转换的。反之则则不行,也就是说从类型范围小的可以自动转换成类型范围大的。

int age = 18;
double age2 = age;
System.out.println(ages); //18.0

但是如果想反过来转换呢?这里就需要使用强制类型转换。使用强制类型转换可能会造成数据的丢失,需谨慎使用。(如下,小数点的5被直接截断)

double height = 178.5;
int height2 = (int)height;
System.out.println(height2); //178 

== 和 === 和euqal()

在js中 == 只判断值是否相等,如果要判断类型也相等就需要使用 === 。但是注意:在java中没有=== 只有 ==,==就已经判断了类型是否相等。
而euqal()方法是判断引用数据类型的,它判断的是引用的内存地址是否相等(即是否是同一个对象),而不是判断值。

数组


数组的声明

int[] scores = { 89, 72, 64, 58, 93 };
System.out.println(scores); //[89, 72, 64, 58, 93]
String[][] names={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};

数组的遍历

除了普通的for循环外,还可以用foreach来遍历数组。

for ( int score : scores) {
  System.out.println(score);
}

如果只是取数组的每一个元素的话,这个方法比普通for循环方便很多,但是如果要是用的索引的话,该怎么办呢?可以通过定义一个自增变量来实现。

int index = 0;
for ( int score : scores) {
  System.out.println(index);
  index++;
}

数组常用方法

在js中,数组常用的方法直接.方法名就可以了,但是Java中使用方法是需要提前导包的。

import java.util.Arrays;
public class HelloWorld {
    public static void main(String[] args) {
		int[] scores = { 89, 72, 64, 58, 93 };
		// 对Arrays类对数组进行排序
		Arrays.sort(scores);
		// 使用foreach遍历输出数组中的元素
		for ( int score : scores ) {
			System.out.println(score);
		}
	}
}
/*
58
64
72
89
93

方法


方法的声明

在js中定义一个方法之间function 方法名,完事。甚至在es6出来之后都可以使用箭头函数,function都不要写了。但是在Java中定义一个方法就没有这么干脆了。

访问修饰符 返回值类型 方法名(参数) {}

public void print() {
  System.out.println("Hello World");
}

Java中定义方法应该遵循以上结构,具体每部分的含义往下看:

1、访问修饰符:该方法允许被访问的范围。public(任何位置)protected(本类、子类、同包下可以访问)不写(默认在本类、同包下可以访问)private(只能在本类中访问)

2、 返回值类型:如果没有返回值,则类型指定为void,如果有返回值就指定为返回值的类型。

3、方法名:合法的标识符。没有其他特殊之处

4、参数:如果是多个参数则以逗号隔开。

方法的调用

在js中一个类中要调用方法,直接this.方法名就可以了,这里需要先创建实例对象。

public class HelloWorld { 
    public static void main(String[] args) {
		// 创建对象,对象名为hello
		HelloWorld h = new HelloWorld();
		// 调用方法
		h.showMyLove();
	}

	/*
	 * 定义无参无返回值的方法
	 */
	public void showMyLove() {
		System.out.println("世界和平!");
	}
}

Java中main方法最先执行。

方法的重载

每一个知识点都要和js对比着来学习,这样可以记得更牢靠,而且对js的基础也能更扎实。
在js中是没有方法重载的概念的,如果出现方法相同的情况,后声明的方法会直接把原有的方法覆盖掉。但是在Java中会根据以下情况判断方法重载:

  • 必须在同一个类中

  • 方法名相同

  • 参数的个数,位置,类型不同

  • 与修饰符或者返回值没有关系。

满足这条件说明方法被重载了,调用时会通过参数的不同匹配调用不同的方法。而不会出现覆盖现象!

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
6
获赞与收藏
2

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消