java基础知识整理2

这篇博客详细介绍了Java编程中的数据类型转换,包括默认转换和强制转换,并举例说明了可能遇到的溢出和精度降低问题。此外,还讲解了算术、关系、逻辑运算符的使用,以及条件运算符、赋值运算符的概念。文章进一步阐述了循环结构(如while、do-while和for循环),break和continue语句的作用,以及循环嵌套的应用。最后,简要提到了Java中的方法定义、return语句及其作用。
摘要由CSDN通过智能技术生成

数据类型转换

默认转化

容量小的可以转化为大容量的数据类型,数据类型按照容量大小排序为:byte,short,char<int<long<float<double.其中byte,short,char之间不会相互转化,在计算时会转化为int类型.

 byte b=10;
 int a=b;
 long x=a;
 double y=x;

强制转化

容量大的转化为容量小的数据类型,需要强制转化符,但是会出现两种问题:溢出现象,精度降低.

 double a=1.98;
 int b=(int) a;//精度降低   
 System.out.println(b);//b=1
 int x=255;
 byte y= byte(x);//溢出

运算符

算术运算符: +,-,*,/,%,++,–.算数运算时使用,其中自增和自减,++a先运算后取值,a++先取值在运算.

 /*算数运算符
 + 表示一个正数,字符串 连接
+ 加法运算
-,*,/,%, 数值运算
++,--  */
int a=10;
int b=5;
int c=3;
/* ++a  先运算后取值
a++   先取值后运算
*/
  a=b++ +c;  //  8
// a=++b +c;    10
System.out.println(a);

关系(比较)运算符: >,<,>=,<=,==,!=.

 /*比较运算符
    ==  !=
       结果为 ture false
   >  <  >=  <= 数值与数值(char)
  */
int a=10;
int b=5;
int c=3;
System.out.println(a==b);

 String x="abc";
 String y="abc";
 System.out.println(x==y);

逻辑运算符: &—逻辑与 | —逻辑或 !—逻辑非

​ && —短路与 || —短路或 ^ —逻辑异或

        int a=10;
        int b=5;
        int c=3;
//        & 与运算  都为真才为true  当左边为假的时候  右边会继续进行运算
        System.out.println(a>b&a<c);
        System.out.println(a>b&a>c);
       System.out.println(a<b&++a>c); //a=11
        System.out.println(a);
//        &&与运算(短路与)  都为真才为true  当左边为假的时候 直接结束运算
       System.out.println(a<b&&++a>c);  //a=10
        System.out.println(a);
//        !非运算  取反
        System.out.println(!true);
//        |或运算 有true即为true  都为false才为false
//        ||或运算 (短路或)   当左边为真的时候 直接结束运算
        System.out.println(a>b||++a<c); //a=10
        System.out.println(a);
//        ^异或运算  当左右都为true 结果为false

练习:如何将两个数值不借用第三变量进行交换.

public class Operdame {
    public static void main(String[] args) {
//        两个数值不借用第三个变量进行交换  通过异或运算
        int a=3;
        int b=2;
        /*  0011
            0010
            0001
            0010
            0011
        */
        a=a^b;
        b=b^a;
        a=a^b;
        System.out.println(a);
        System.out.println(b);
    }
}

赋值运算符: = ,+ =,- =,* =,/ =

 /*
     赋值运算符 =
     扩展赋值运算符    +=, -=, *=, /=, %=
 */
 short a=3;
 a=a+2;//类型转换出现问题
 a+=2;   //自动转换类型
//     分辨==和=
 boolean b=false;
 if(b=true){
    System.out.println(true);
 }else{
    System.out.println(false);
 }

条件运算符

 /*
条件运算符
 (条件表达式)?表达式1:表达式2
*/
 int a = 60;
 String  r = (a>=60)?"及格":"不及格";
 System.out.println(r);
表达式中的运算顺序

在这里插入图片描述

控制台输入

在程序中交互式输入数据,使用Scanner取得一个字符串或一组数字,使用标准输入串System.in.Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型.

 Scanner scan= new Scanner(System.in);
    System.out.println("请输入");
     String r=scan.next();

控制语句

if条件结构语句,其中if后的括号中写明条件,语句是用{}包含语句块.

 int a=66;
        if(a>60){
            System.out.println("考试及格");
        }else{
            System.out.println("考试不及格");
        }

条件运算符与if-else的联系与区别:

条件运算符可简化if-else语句,条件运算符要求必须返回一个结果; if后的代码块可有多个语句.

switch语句,多分支选择语句,根据表达式的值,执行某分支的操作或某分支及之后分支的操作.

package Day2;

public class Opear6 {
    public static void main(String[] args) {
        int a=3;
//  switch后的表达式可以为byte,int,short,int,char,枚举类型,也可以使用String类型
        switch(a)
        {
        //case 后面只能使用常量表达式  不能重复
            case 0:
                System.out.println("春天");
//                break;//不执行下一个case的语句
            case 1:
                System.out.println("夏天");
            case 2:
                System.out.println("秋天");
            defaule : System.out.println("查无此项");
        }
    }
}

if语句与switch语句的区别

在具体的判断数量不多的情况下,switch语句效率会更高一点.对区间或者结果为boolean类型判断,使用if,if的使用范围更广.

循环

在某些情况中,需要对特定的代码反复进行执行,此为循环语句.

while&do while语句

while语句表达式为while(表达式){语句}.先判断逻辑表达式的值,若true,能执行后面的语句.

do while语句表达式为do{语句}while(表达式),先执行语句,然后在判断逻辑表达式的值.

package Day2;

public class Whiledame {
    public static void main(String[] args) {
//       while循环  先判断逻辑表达式 后执行语句
        int a=1;
        /*while(a<5){
            System.out.println(a);
            a++;
        }*/
//        do-while  先执行语句  再判断
        do{
            System.out.println(a);
            a++;
        }while(a<4);
    }
}
for循环

for循环语句表达式为 for(表达式1; 表达式2; 表达式3){ 语句; … ; },表达式用;隔开.

for语句执行过程:先执行表达式1,然后执行表达式2,若表达式2为true,则执行循环语句,接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false.

package Day2;

public class Fordame {
    public static void main(String[] args) {
//        for 循环
        /*
        输入三行三列*
        ***
        ***
        ***
        */
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j <3 ; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
break&continue语句

break语句为结束某段程序的执行,在循环语句中,可以退出循环.

continue语句为跳过循环语句中的本次循环,下一个循环继续执行.

//        break 终止
        for (int i = 0; i < 5; i++) {
            if(i==3){
                break;
            }
            System.out.println(i);
        }
//        continue 跳过当次循环
        for (int i = 0; i < 6; i++) {
            if(i==4){
                continue;
            }
            System.out.println(i);
        }
    }
}
循环嵌套

将循环放在另一个循环体中,就是嵌套循环,如while,if,do while,都可为外层嵌套或者内层嵌套.

java中的方法

方法,在其他语言中称为函数,定义一个新的方法,然后再主方法中可以调用此方法,调用方法的语句为:对象名 方法名(实参列表),实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配.

package fangfa.day4;

public class MethodDameo {
    public static void main(String[] args) {
      /*   
       方法
       [访问权限修饰符   修饰符] [返回值类型]/void 方法名([参数类型  参数名称]){
            语句
                return 值
        }*/
//        创建方法所在类的对象
        MethodDameo m=new MethodDameo();
      int  r=m.getMax(3,2);
      System.out.println(r);
         m.open();
    }
//    创建一个开门的方法
    public void open(){
        System.out.println("开门");
    }
//    输入两个数 输出最大的一个
 public int getMax(int a,int b){
        return (a>b)?a:b;
    }
}

return语句

return语句是在当前执行的方法中退出, 返回到调用该方法的语句处继续执行。

//return第一种形式  不返回值 
public  void test(){
        int a=1;
        if(a==2){
            return;//return后面可以不加任何值  终止方法运行  没有返回值
        }
    }
//return第二种形式  返回此方法中表达式的值
 public int test(){
        for (int i = 0; i <5 ; i++) {
            if(i==2){
                return i;
            }
        }
        return 0;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值