栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java入门(边学边写)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java入门(边学边写)

文章目录

Java

javaSE

1. 获取参数类型2. 参数类型转换3. / 和 % ,++ , += , -= , /= , %= , 位运算

(1). / 和 %(2). ++ 和 -- 和 其他 += -=(3)位运算 << >> >>> & | ^ ~ 4. 判断实例与类 instanceof5. 二维数组 Bug

1. java.lang.NumberFormatException2. java.lang.StringIndexOutOfBoundsException3. java.lang.ArrayIndexOutOfBoundsException4. java.lang.NullPointerException

Java javaSE 1. 获取参数类型

​ 该参数.getClass().toString();

// 获取数据类型
 public static String getType(Object a){
        return a.getClass().toString();
 }

​ 默认的整型是int,浮点型是double

getType(1); // class java.lang.Integer  即 int
getType(1.5); //  class java.lang.Double  即double

 long a = 1;
 getType(a+1);  // 是  class java.lang.Long   即 当 两个number类型 相加 时 结果为范围大的那个类型
 char a= 'a';
 getType(a+1);  //  class java.lang.Integer  即  当 字符 和 number 类型计算时,结果为int,这里的字符使用																						ascill计算
 String a = "a";
 getType(a+1);  // class java.lang.String   即 , 字符串相加 必为 字符串

2. 参数类型转换

​ 转换为整型时,可以通过(int) 转换非字符(包括字符串)和 boolean的其他类型 或 通过 Integer.parseInt()转换字符串 ,可以通过设置三元运算符

 int m;

        char d = 'a';
        m = (int )d;   //97   ascill 码

        String e = "123";
        m = Integer.parseInt(e); //  字符串转换,但其内必须为数字,如果为字符串并不会转换为acsill码

	   boolean n = true;
	   m = n ? 1 : 0 ;   // 这里判断 ?左侧为true ,则返回 1,否则为0	
3. / 和 % ,++ , += , -= , /= , %= , 位运算 (1). / 和 %

​ 共有n位 /10^m 获取前n-m位 %10^m 获取后m位

  int a = 123456789; // 9位

        int m ; // 获取后几位
        int n; // 获取前几位
 
		// Math.pow(x,y)是math中的方法, 指的是 x 的 y 次方

        n = (int) (a / Math.pow(10,2 )); //  获取9-2位   得到1234567
        m = (int) (a % Math.pow(10,2));  // 获取后两位   得到89

(2). ++ 和 – 和 其他 += -=

​ ++ 自增 1 , 在使用 ++ 时 ,不会像 + 1 改变 其类型

​ – 自减1 ,其他同上

​ +=10 自增10

int a = 0;

a++;   //这里结束就是a+1了
System.out.println(a); // a = 1了

a = 0;
System.out.println(a++); // 这里 a = 0 , 然后使用 a 的值,比如这里是输出,然后给a+1 
System.out.println(++a); // 这里 a = 1,然后 a+1 ,然后使用 a 的值,这里是输出

a = 0;
System.out.println(a++ + ++a);   // 这里先进行 ++a ,a=1 再进行a++ ,所以 = 2

a= 2;
System.out.println(a-- + --a);// 这里先进行 --a , a = 1 再进行a--  ,所以 = 2

 int a =0;
 System.out.println(++a + --a); // 当 有加有减时,从左到右
(3)位运算 << >> >>> & | ^ ~
//  << 是二进制左移   3<<2 (3二进制左移两位) =  3 * 2 * 2 = 12
//  >> 是二进制右移   3>>1  (3二进制右移一位) =  3 / 2  = 1; 
//	>>> 是 二进制无符号右移   3 >>> 1  = 1
//  无<<<
//  & 是与运算   6 & 3 = 2   比较二进制, 0 1为 0   只有1 1 为1
// | 是 或运算   比较二进制, 只有 00 为 0 
// ^ 是异或  二进制 00  11 相同为 0  不同为1
// ~  取反    按二进制补码各位取反

4. 判断实例与类 instanceof
	System.out.println("引用对象"  instanceof  String); // instanceof 前是类的实例化,后是类,判断是否是这																				    个类的实例化
	eg、 有一个User类,通过new 一个user对象实例化,可以通过 返回的值判断
		
		 User user = new User();
     	  System.out.println(user instanceof User);   // 这里始终为true  
	
5. 二维数组
//使用

String [][] string = new String[3][5];  //3行5列的二维数组
String [][] string = {{"a","b","c"},{"a"},{"b"}}; // 2行3列的二维数组

String [][] string = new String[3][]; //3行 但不确定几列。 列为空(这里直接输出会报空指针异常)
 	string[1] = new String[5]; // 设置第一行的数组 

Bug 1. java.lang.NumberFormatException

​ 有参数类型错误

String e = "f";
m = Integer.parseInt(e);  // 这里 字符f 不能被转换
2. java.lang.StringIndexOutOfBoundsException

​ 字符串下标越界

Scanner scanner = new Scanner(System.in);
String scan = scanner.next();
String substring = scan.substring(0, 7); //当超过字符的长度时,越界
char substring1 = scan.charAt(8);  
System.out.println(substring);		
3. java.lang.ArrayIndexOutOfBoundsException

​ 数组下标越界

4. java.lang.NullPointerException

​ 空指针异常

// 第一次出现
	Object[] object = new Object[5];
	System.out.println(object[1]); // 当属于Object,且其未设值时,会报空指针异常。其他的会有其默认值
//  第二次出现
  	String [][] strings = new String[4][];  // 当二维数组时,这样写只确定了行,并且确定列是一位数组
  										   //但并没有设置一维数组,即这个二维数组内的一维数组的值仍然为空,
  										   //并没有让其按照默认值使用

			//   可以通过  strings[1] = new String[5]; 来设置第二行的一位数组是多少 
        for (int i=0;i<5;i++){
            System.out.println(strings[i][0]);
        }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号