java_basic_基础

时间:2023-03-09 04:22:08
java_basic_基础

变量

类型

运算符

条件

循环

调试

字符串

数组

从键盘输入数据
switch的用法 从变量接收值
从键盘接收值
输出到一个文件 基本类型的赋值与引用类型的赋值是不一样的
是将引用类型的地址 每一个对象属于某些特殊的类
3种
类叫做对象的类
对象叫做类的实例和

内存如何存放数据
数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间
内存地址不好记,怎么办?,可以通过内存中小房间的别名找到数据存储的位置
变量就像是一个房间

变量名        房间名字(例如房号301)
变量类型    房间类型(例如双人间)
变量值        入住的客人(虽然是双人间,但可以只住一个人)

====================================

int,short,long,byte,char,boolean,float,doubleint型

package demo2;

public class VarDemo1 {

	public static void main(String[] args) {
        int num1=1000;//默认十进制
        int num2=0123;//八进制
        int num3=0x123;//16进制
        int num4=0b10;//2进制
//数据类型int,变量名,值
System.out.println(num4);
} }
变量的声明与赋值,两种方式,类比住店
    现住
        int money=1000;
    预定
        int money;
     money=1000; 变量命名规范

自动类型转换
强制转换

package demo2;

public class VarDemo1 {

    public static void main(String[] args) {
        int money;
        money=1000;
        money=0123;
        money=0x123;
        money=0b10;
        System.out.println("money="+money);
        long num;
        num=034l;
        System.out.println("num="+num);
        System.out.println(Long.MAX_VALUE);
        System.out.println(Byte.MAX_VALUE);
        char aa='a';
        char ab='男';
        char ac='\'';
        char ad='\\';
        boolean b1=true;
        System.out.println(b1);
        System.out.println(Character.isJavaIdentifierStart(6598));
        String ss="ad"+"cd";
        System.out.println(ss);
        
    } }

==============================

运算符

赋值

算术

=============================

条件

package demo2;

import java.util.Scanner;

public class VarDemo1 {

	public static void main(String[] args) {
System.out.print("请输入一个整数:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
switch (num) {
case 1:
System.out.println("y");
break;
case 2:
System.out.println("e");
break;
default:
System.out.println("oooooo");
break;
}
}
} switch语句的注意点
表达式可以是byte,short,char,int,enum,string,也就是switch(num)中的num
break可以省略,但是有个穿透现象,所以还是加上好
default也可以省略,也可以不出现在最后,但是也有一些问题,所以也不要乱放 与多重if条件的区别

===========================================

循环

必要性(也就是没有使用循环时)
写n多遍
system.out.println("aaaaaaa");
system.out.println("aaaaaaa");
system.out.println("aaaaaaa");
system.out.println("aaaaaaa");
system.out.println("aaaaaaa");
system.out.println("aaaaaaa");
system.out.println("aaaaaaa");
......

使用循环
想写几行写几行
package demo2;

public class VarDemo1 {

public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            System.out.println(i+" aaaaaaa");        
        }
        int total=0;
        for (int i = 0; i < 100; i++) {
            total+=i;        
        }        
        
    }
}

=====================
循环的java实现有4种
for
foreach    在数组中使用,还有集合中
while
do...while
无论哪一种循环,都有4个必不可少的部分
初始部分,循环条件,循环体,迭代(变化的)部分

for的语法与执行顺序
for(参数初始化;条件判断;更新循环变量){
    循环操作;
}
1参数初始化,只执行一次,234循环执行
2条件判断
3循环操作
4更新循环变量

死循环
for (;;){}

从基本的语法来灵活运用

package demo2;

public class VarDemo1 {

public static void main(String[] args) {
/*        for (int i = 0; i < 100; i++) {
            System.out.println(i+" aaaaaaa");        
        }
        */
        
/*        int total=0;
        for (int i = 3; i <= 100; i+=3) {
            total+=i;        
        }        
        System.out.println(total);*/
        
        
/*        for (int i = 1; i <= 100; i++) {
            if (i%2==0) {
                System.out.println(i);
            };        
        }    
        */
        
/*        for (int i = 2; i <= 100; i+=3) {
            System.out.println(i);
        }    
        */
        
    }
}

======================
while
do...while

while(条件判断){循环操作}
1条件判断成立,执行循环操作,否则循环退出

do{循环操作}while(条件判断);
先无条件执行一次循环操作,然后再条件判断

package demo2;

public class VarDemo1 {

public static void main(String[] args) {
        int i=1;
        do {
            if (i%3==0) {
                System.out.println(i);
            }
            i++;
        } while (i<100);
    }
}

break,跳出循环而执行循环后面的语句。
break可以与switch和循环结构中
continue,跳出本次循环而执行下次循环。
continue只能用在循环里

==============================
嵌套循环和label标签的使用
在循环中使用循环的一种编程方式
内循环可以使用外循环中的变量
经典案例:九九表

package demo2;

/**
 * 九九乘法表
 */
public class VarDemo1 {

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

label的使用,未用label,只跳出小循环
package demo2;

public class VarDemo1 {

public static void main(String[] args) {
        for (int i = 0; i <= 10; i++) {
            for (int j = 0; j <= 10; j++) {
                if (i + j == 6) {
                    System.out.println(j);
                    break;
                }
            }
            System.out.println(i);
        }
    }
}

用label,跳出大循环
package demo2;

public class VarDemo1 {

public static void main(String[] args) {
        a: for (int i = 0; i <= 10; i++) {
            for (int j = 0; j <= 10; j++) {
                if (i + j == 6) {
                    System.out.println(j);
                    break a;
                }
            }
            System.out.println(i);
        }
    }
}
=============================

调试

===============================

字符串的主要内容
String的概念与声明、赋值
String的拼接
String的常用方法
String的不可变

字符串拼接有下面两种方法
1+
2String类的concat()方法。这个用的较少

String的常用的几个方法
length()
equalsIgnoreCase()
toLowerCase()
toUpperCase()
equals()

java.lang.String类表示字符串

使用String对象存储字符串
String s="hello world";
String s=new String("hello world");

字符类型只能存储单个字符char s1='a'

string是java中的一个类,而类是可以做为类型为使用的

练习
package demo2;

import java.util.Scanner;

public class VarDemo1 {

public static void main(String[] args) {
        //双引号放字符串,下面是最常见的声明方式
        String s1="hello,world";
        //单引号只能放字符,一个字母,一个汉字都可以
        char c='a';
        //通过String的一个构造方法来声明
        String s2=new String("a");
        String s3;
        s3="hello";
        System.out.println(s2.length());
        String s4=s2+' '+s3;
        System.out.println(s4);
        String s5="A";
        System.out.println(s5.equalsIgnoreCase(s2));
        Scanner sc=new Scanner(System.in);
        String s6=sc.next();
        String s7=sc.next();
        String s8=sc.next();
        if (s6.length()>s7.length()) {
            System.out.println(s6);
        }else {
            System.out.println(s7);
        }
    }
}

==========================================

数组的概念与特点
数组的基本用法
使用循环遍历数组

特点
存放相同数据类型
内存中连续分配相同大小的空间
大小一旦确定将不可扩容或缩容
检索元素速度快,而添加和删除元素慢
使用下标访问元素,下标从0开始

使用4步走
1声明数组    int[]=a;
2分配空间    a=new int[5];
3赋值        a[0]=8;或者
4处理数据    a[1]=a[0]*2;

边声明边赋值
int[] ages=new int[]{10,20,30,40,50};
int[] agee={1,2,3,4,5};
动态地从键盘录入信息并赋值

数组的默认值
基本数据类型数组有默认值0,0.0,false等
引用数据类型数组默认值是null
int[] ee= new int[5];
float[] ee2 =new float[5];
boolean[] ee3 =new boolean[5];
String[] ee4 =new String[5];
System.out.println(ee4[3]);

使用循环遍历数组
使用数组的属性length控制循环的次数
    使用for循环
    使用foreach循环

package demo2;

import java.util.Scanner;

public class VarDemo1 {

    public static void main(String[] args) {
int age1,age2,age3,age4,age5;
int[] ages=new int[]{10,20,30,40,50};
int[] agee={1,2,3,4,5};
System.out.println(agee[4]); /* int[] dd = new int[3];
Scanner input=new Scanner(System.in);
for (int i = 0; i < 4; i++) {
dd[i]=input.nextInt();
}
System.out.println(dd[3]);*/ int[] ee= new int[]{11,22,33,44,55};
float[] ee2 =new float[5];
boolean[] ee3 =new boolean[5];
String[] ee4 =new String[5];
System.out.println(ee4[4]);
System.out.println("-----------------");
for (int i = 0; i < ee.length; i++) {
System.out.println(ee[i]);
}
System.out.println("-----------------");
//ee7是一个临时变量,存储ee的值,这种写法没有下标的概念
for (int ee7 : ee) {
System.out.println(ee7);
}
}
}

一维数组的应用
二维数组的基本用法(用的不是太多)

==========================
判断最大最小值
package demo2;

public class VarDemo1 {

public static void main(String[] args) {
        //打擂台算法,比较数组中的最大值或最小值
        int[] aa={6,88,99,33,5};
        int max=aa[0];
        for (int i = 1; i < aa.length; i++) {
            if (aa[i]>max) {
                max=aa[i];
            }
        }
        System.out.println("最大值:"+max);
        System.out.println("-------------");
        int min=aa[0];
        for (int i = 1; i < aa.length; i++) {
            if (aa[i]<min) {
                min=aa[i];
            }
        }
        System.out.println("最小值:"+min);
    }
}

对上面的进行改造,代码简单一些

package demo2;

public class VarDemo1 {

public static void main(String[] args) {
        //打擂台算法,比较数组中的最大值或最小值
        int[] aa={60,88,45,33,50};
        int max=aa[0],min=aa[0];
        for (int i = 1; i < aa.length; i++) {
            if (aa[i]>max) {
                max=aa[i];
            }
            if (aa[i]<min) {
                min=aa[i];
            }
        }
        System.out.println("最大值:"+max);
        System.out.println("最小值:"+min);
    }
}

==============================

判断数组中的元素是否包含关键字
package demo2;

public class VarDemo1 {

public static void main(String[] args) {
        String[] names={"jack","tom","rose"};
        String name="tome";
        boolean b =false;
        for (String string : names) {
            if (string.equals(name)) {
                b=true;
                //加上break减少循环的次数
                break;
            }
        }
        if (b) {
            System.out.println("存在");
        }else {
            System.out.println("不存在");
        }
    }
}