java笔记

本文介绍了Java中的基本数据类型、引用数据类型如String、数组和类,以及条件运算符、switch语句、算术运算和控制结构的应用,包括九九乘法表、最大公因数计算、水仙花数查找和二进制1位计数等编程实例。
摘要由CSDN通过智能技术生成

一,数据类型与变量

(一)基本数据类型(内置类型)

(二)引用数据类型

String

数组

接口

......这些类型定义的变量都是存储地址的变量

String str = "abcde" ;  //str 属于引用变量,这个变量里面存的是地址

注意

(1)Java中不允许使用未初始化的局部变量。

(2)所有的符号定义的数据都是有符号的,最高位是符号位。

(3)当我们给赋值的字面值超过当前数据类型时就会直接报错。

(4)当发生算术运算时,若结果超过该类型所限制的范围,会自动发生截断,可以由以下代码进行测试 判断是发生了截断还是提升

public static void main(String[] args){
byte b1=1;
byte b2=127;//byte的最大取值就是127
b2+=b1;//若再加上1,打印结果为128,即发生提升,若为-128,则发生截断
System.out.println(b2);
{

 (5)右移分为有符号右移(>>)与无符号右移(>>>),运算时会发生类型提升

 

 (6)条件运算符(三目运算符) 表达式1 ?表达式2 :表达式4  不能独立存在,要么结果付给另一个值,要么直接打印出来

例:

 (7)Java中  switch(参数),其中的参数可以是字符串,需要注意的是,不能作为参数的有

double,float,long,boolean  等四种。switch 与 if 的区别:switch里面不能是很复杂的表达式,if 里面可以

(8)要读入一个数时

(9)while(表达式)  if(表达式)  do{} while  (表达式)这个表达式必须是boolean表达式

简单编程题

1.输出九九乘法表

public static void main1(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + i * j + " ");
            }
            System.out.println();
        }
    }

2.求两个数的最大公因数

public static  void main2(String[] args){
        Scanner scanner=new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = a % b;
        while (c!=0){
        a=b;
        b=c;
        c=a%b;
        }
        System.out.println(b);
    }

3.求水仙花数

public static void main3(String[] args){
        for (int i=1;i<99999;i++){
            int count=0;
            int tmp=i;
            while (tmp!=0){
                count++;
                tmp/=10;
            }
            tmp=i;
            int sum=0;
            while (tmp!=0){
                sum += Math.pow(tmp%10,count);
                tmp/=10;
            }
            if(i==sum)
            System.out.println(i);
        }
    }

4.任意输入一个数,输出其二进制有多少个1

public static void main(String[] args){
        int n = 2;
        int count = 0;
        while (n!=0) {
            n = n & (n - 1);
            count++;
        }
        System.out.println(count);
    }

//方案2.&1之后,右移1位,直到为0
public static void main(String[] args){
        int count = 0;
        int n=7;
        while (n!=0){
          if(0!=(n&1)) {
              count++;
              n = n >> 1;
          }
        }
        System.out.println(count);
    }

注意,若输入的数为-1,则将以上代码的右移改为无符号右移符>>> 即可

5.递归实现斐波那契数列

 public static int Fib(int n){
        if(n==1||n==2) {
            return 1;
        }
        int f1=1;
        int f2=1;
        int f3=0;
        for (int i=3;i<=n;i++) {
            f3=f1+f2;
            f1=f2;
            f2=f3;
        }
        return  f3;
    }
    //迭代实现斐波那契数列
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int n= scanner.nextInt();
       int num= Fib(n);
       System.out.println(num);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值