java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

1. 除法

(1)如果两个运算符的类型都为整型,那么运算结果为整型,结果即为自然除法的结果截断取整(2)如果除法运算符的两个操作都为整型,则除数不可以为0,否则将引发除零异常(java.lang.ArithmeticException)

(3)如果两个运算符的类型至少有一个为浮点型,那么运算结果为浮点型(4)如果两个运算符的类型至少有一个为浮点型, 允许除数为0或者0.0, 得到结果为Infinity,不会引发除零异常

试着写个代码验证一下:

package test;

public class DivisionDemo {
	public static void main(<a href="http://www.cfei.net/archives/tag/string" title="浏览关于“String”的文章" target="_blank" class="tag_link">String</a>[] args) {

		int a = 5;
		int b = 10;
		float c = 1.0f;
		double d = 1.333;
		int f = 0;
		double g = 0.0;

		System.out.println(a / b);// int / int
		System.out.println(c / d); // float / double
		System.out.println(d / f); // double / 0.0
		System.out.println(b / f); // int / 0.0
		System.out.println(g / f); // 0(double) / 0.0
		System.out.println(b / f); // 0(int) / 0.0

	}
}

运行结果总结:

int/int还是int浮点数/浮点数还是浮点数

浮点数除以零结果为Infinityint除以零会引发异常: xception in thread "main" java.lang.ArithmeticException: / by zero at test.DivisionDemo.main(DivisionDemo.java:16)

浮点数0除以0,结果为NaN整型0除以0,结果为 Exception in thread "main" java.lang.ArithmeticException: / by zero at test.DivisionDemo.main(DivisionDemo.java:18)

2.求模运算

(1)求模运算的结果不一定是整数(2)它的计算本质还是做除法,得到一个整除的结果后剩余的值就是余数(3)关于做除法是的规则与(1)相同

试着写个代码验证一下:

package test;

public class DivisionDemo {
	public static void main(String[] args) {

		int a = 5;
		int b = 10;
		float c = 1.0f;
		double d = 1.333;
		int f = 0;
		double g = 0.0;

		System.out.println(a % b);// int % int
		System.out.println(c % d); // float % double
		System.out.println(d % f); // double % 0.0
		System.out.println(b % f); // int % 0.0
		System.out.println(g % f); // 0(double) % 0.0
		System.out.println(b % f); // 0(int) % 0.0

	}
}

运算结果总结:

int%int还是int浮点数%浮点数还是浮点数

浮点数%零结果为NaN(与除法结果不一致,需注意)int%零会引发异常: Exception in thread "main" java.lang.ArithmeticException: / by zero at test.DivisionDemo.main(DivisionDemo.java:16)

浮点数0%0,结果为NaN整型0%0,结果为 Exception in thread "main" java.lang.ArithmeticException: / by zero at test.DivisionDemo.main(DivisionDemo.java:18)

3.关于String直接量的问题

当程序第一次使用某个字符串直接量时,Java会使用常量池(constant pool)来缓冲该字符串直接量,如果程序后面的部分需要用到该字符串直接量时,java会直接使用常量池中的字符串直接量

试着写个代码验证一下:

package test;

public class StringDemo {
	public static void main(String[] args){
		String a = "hello";
		String b = "hello";
		String c = "he" + "llo";
		String d = new String("hello");
		String f = new String("hello");
		String e = c;
		
		System.out.println(a == b); //true
		System.out.println(a == c); //true
		System.out.println(a == d); //false
		System.out.println(a == e); //true
		System.out.println(e == c); //true
		System.out.println(d == f); //false
		
	}
}

运行结果说明:

在java中对象与对象的等号比较中,本质上是比较的是对象的地址。那么上面输出为true的String对象的地址是相同的,印证了常量池缓冲字符串直接数这一说法。

说明在a之后的b,c,e均是指向a所指向的地址的引用。它们所指向的地址相同。但是如果使用new来初始化String对象,地址不同。

后续接续完善。。。

java基础运算符字符串Stringjava规则验证

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。