java基础细节巩固(持续更新)

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 java基础细节巩固(持续更新),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1、标识符命名规格

  • 标识符只能用下划线(_)美元($),其他符号不能使用
  • 数字可以作为标识符使用,但不能开头

2、数据类型之间的转换

  • 范围小的数据可以直接转换为范围大的数据
  byte b = 10;

  short s = b;

  int i = s;

  long l = i;

  float f = l;

  double d = f;
  • 范围大的转换范围小的,需要强制转换,丢失精度
  int i1 = (int) d;

3、二元运算符

两个元素参与运算的运算符:+ – * / %

  • 表达式结果类型是两个元素类型中最大的那一个
  System.out.println( 1 / 2);   // 0
  System.out.println( 1.0 / 2); // 0.5
  • 最小使用类型为int;如下b1和b2使用时候已经转为了int
   byte b1 = 10;
   byte b2 = 20;
//  byte b3 = b1 + b2; // 抛异常
   byte b3 = (byte) (b1 + b2);    

4、一元运算符

一个元素参与运算的运算符:++ – –

i++简化版本的由来

   int i = 0;//第一步
   int j = i;//第二步
   i = i + 1;//第三步
   System.out.println("i="+i); //i=1
   System.out.println("j="+j); //j=0
  • 将第二步和第三步合为一步
  • 简化操作:i赋值j没有变化,赋值之后加1,简化为i++
    int i = 0;//第一步
    int j = i++;
    System.out.println("i="+i); //i=1
    System.out.println("j="+j); //j=0

++i简化版本的由来

   int i = 0;//第一步
   i = i + 1;//第二步
   int j = i;//第三步
   System.out.println("i="+i); //i=1
   System.out.println("j="+j); //j=1
  • 将第二步和第三步合为一步
  • 简化操作:i赋值j没有变化,赋值前加1,简化为++1
    int i = 0;//第一步
    int j = ++i;
    System.out.println("i="+i); //i=1
    System.out.println("j="+j); //j=0

5、复合赋值运算符

  • 如果元素进行运算后冲洗赋值给自己,那么可以将原酸和赋值的符号进行简化:+= -= *= /= %=
   int i = 1;
   //简化前
   i = i + 1;
   //简化后
   i += 1;
  • 如果使用了复合赋值运算符,那么数据的类型不会发生改变
  • b1和20相加使用byte类型,没有自动转换为最小类型int
    byte b1 = 10;
    // b1 = b1 + 20; // 抛异常,因为最小使用类型int,所以返回int需要强转
    b1 += 20; // 没有报错

6、swich流程控制

  • switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0)
  • 如图,每个分支都会执行,因为只判断了case 10,通过后其他分支则不再判断,直接执行
	int i = 10;
	
	switch (i) {
	    case 10:
	        System.out.println("分支1");
	    case 20:
	        System.out.println("分支2");
	    case 30:
	        System.out.println("分支3");
	    default:
	        System.out.println("默认分支");
	}
  • 如果想达到每个判断执行一个分支,则需要在每个分支完成后,添加break,跳出
  • 为啥默认不添加break,如下:为了10和20可以使用相同的分支
	int i = 10;
	
	switch (i) {
	    case 10:
	    case 20:
	        System.out.println("分支2");
	        break;
	    case 30:
	        System.out.println("分支3");
	        break;
	    default:
	        System.out.println("默认分支");
	}

7、代码块

  • 类的信息加载完成后,会自动调用静态代码块,可以完成静态属性的初始化功能
  • 对象准备创建时,也会自动调用代码块
public class Test {
    public static void main(String[] args) {

        new User();
    }
}

class User{
    static {
        System.out.println("静态代码块1");
    }
    {
        System.out.println("代码块1");
    }
    static {
        System.out.println("静态代码块2");
    }
    {
        System.out.println("代码块2");
    }
}

8、访问权限

  1. private:私有的,同一个类中可以使用
  2. (default):默认权限,相同包路径下可以使用
  3. protected:受保护的权限,相同包路径或子类可以使用
  4. public:公共的,任意使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/148590.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!