美文网首页
再拾Java基础(一)

再拾Java基础(一)

作者: 代夫阿普曼 | 来源:发表于2019-06-20 11:17 被阅读0次

一、byte,short,char数据类型的隐式转换成int的注意点

  1. 在运算符(包括算术运算符、关系运算符、赋值运算符、位运算符、三目运算符、逻辑运算符)左右的byte、short、char类型的操作数都会隐式的转换成int类型,然后再做相应的计算,其结果为int类型。

    short a = 1;
    short b = 2;
    short c = a + b;//报错,c的类型应该为int
    
  2. int类型的数组中,不仅可以放int类型的元素,还可以放byte、short、char类型的元素。

    short a = 1;
    byte b = 2;
    char c = 'a';
    int[] arr = {a,b,c,98};
    

二、运算符的优先级

  1. 要想全部记住全部运算符的优先级,还是比较难的。但是我们得记住几个重要的

    • 分隔符优先级最高

    • 赋值运算符优先级最低

      [图片上传失败...(image-7eff02-1561022043690)]

      int a = 2;
      a *= 3 + 2; //a为10
      

三、水仙花数

  1. 什么是水仙花数

    所谓的水仙花数就是指一个三位数,其各位数字的立方和等于该数本身。

  2. 解析

    取一个数的个位上的数:int ge = num % 10;

    取一个数的十位上的数:int shi = num / 10 % 10;

    更一般化地,取某位上的数,就是拿这个数除以这个位上的权重,再模一个周期;

    对于十进制的数:int digit = num / weight % 10;

  3. 代码实现

    //打印所有的水仙花数
    public void printNarcissisticNumber(){
        for(int i = 100; i < 999; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;
            
            if(Math.pow(ge,3) + Math.pow(shi,3) + Math.pow(bai,3) == i) {
                System.out.print(i+" ");
            }
        }
    }
    
  4. 取一个整数的所有位上的数

    public static void getDigits(int num) {
        int factor = 0;
        int digit = 0;
    
        System.out.print(num % 10 + " ");
        while((num /= 10) != 0) {
            System.out.print(num % 10 + " ");
        }
    }
    

四、100以内的质数

  1. 质数:一个数的因数只有1和它本身

  2. 代码实现

    private void printPrime() {
        boolean isPrime = false;
        for(int i = 2; i < 100; i ++) {
    
            if(i % 2 == 0 && i != 2)    continue;
    
            isPrime = true;
            for(int j = 2; j <= Math.sqrt(i); j ++) {
                if(i % j == 0) {
                    isPrime = false;
                }
            }
            if(isPrime) {
                System.out.print(i+" ");
            }
        }
    }
    

五、百文买百鸡

  1. 描述

    有100文钱,正好要买100只鸡,公鸡5文一只,母鸡3文一只,小鸡三只1文,公鸡,母鸡,小鸡分别有多少只?

    public void getChicken() {
        for(int gong = 0; gong < 20; gong ++) {
            for(int mu = 0; mu < 33; mu ++) {
                int xiao = 100-gong-mu;
                if((xiao % 3 == 0) && (gong*5 + mu*3 + xiao/3 == 100)) {
                    System.out.println("公鸡:"+gong+",母鸡:"+mu+",小鸡"+xiao);
                }
            }
        }
    }
    

六、整形变量的交换

  • 引入第三方变量

    int a = 1;
    int b = 2;
    
    int temp = a;
    a = b;
    temp = b;
    
  • 加减法(不引入第三方变量)

    int a = 1;
    int b = 2;
    
    a = a+b;
    b = a-b;
    a = a-b;
    
  • 异或运算符

    int a = 1;
    int b = 2;
    
    a = a^b;
    b = a^b;
    a = a^b;
    

相关文章

  • 再拾Java基础(一)

    一、byte,short,char数据类型的隐式转换成int的注意点 在运算符(包括算术运算符、关系运算符、赋值运...

  • 再拾Java基础(二)

    一、final关键字 final可以修饰类、方法和变量,被修饰的这些类、方法和变量都有 不可更改 的意思。 fin...

  • 重拾java基础

    虽然做了很久的开发,但是总是觉得自己基础不太牢固,对一些东西有些模糊,重新回顾一下以前可能没有注意到的知识点(不定...

  • JAVA基础拾忆

    1. 字符串转字符数组 2. Java Math的 floor,round和ceil的总结 floor 返回不大于...

  • Java基础拾遗(一)

    虽然这个专栏系列旨在告诉大家如何快速的开发一个Android原生的app,但是工欲善其事,必先利其器。因此,在开始...

  • Java索引

    努力努力再努力xLg本文所有代码托管在Gitee上。java_legendary Java基础 反射机制Java反...

  • Java 拾遗(之二)

    Java 拾遗(之二) 背景 上一篇《拾遗》只是对Java语言基础知识的一个笼统的梳理,有些之前接触不太多的,或者...

  • todo

    内存泄漏专项 leakcanary 基础拾漏 java强弱引用 操作系统拾漏 性能 cgroup9.0上启用的 用...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

网友评论

      本文标题:再拾Java基础(一)

      本文链接:https://www.haomeiwen.com/subject/ojqdqctx.html