Java基础

这篇博客详细介绍了Java的基础知识,包括输出、代码注释、变量、常量、运算符、程序流程结构等。讲解了变量的定义、数据类型、变量名的命名规范,以及常量的概念和使用。还涵盖了各种运算符,如赋值、算术、关系和逻辑运算符,并讨论了位运算符的用法。此外,文章提到了程序的顺序、选择和循环结构,包括if结构和循环结构的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java基础

输出

在控制台输出一定的内容,然后换行

System.out.println("hello world"); 

在控制台输出一定的内容,不换行

System.out.print("hello world");

输出一个空行

System.out.println();

练习

太棒了!

马上就端午了!

回家!

====欢迎登陆海峰学习平台====

转义字符

转义字符描述举例
\""System.out.println("\"");
\\\System.out.println("\\");
\t一个Tab键的距离System.out.println("你好\t张三");
\n换行System.out.println("你好\n张三");

练习:打印购物清单

代码注释

作用:解释代码,是给程序员看的,方便维护

​ 编译器不处理注释,所以不影响程序的执行效率

​ 提倡代码注释多多益善

分类:

​ 1、单行注释。//

​ 2、多行注释。/* */

​ 3、文档注释。/** */

变量

概念

我有10块钱,吃早饭花6元,还剩多钱?

1、开空间,存储数据

2、CPU运算,更新空间的值

变量:内存中的一块空间

​ 这块空间中存储的值是可以发生的变化的

变量三要素

​ 变量值:空间存储的数据;

​ 变量类型:存储数据的类型,来决定分配多大的空间

​ 变量名:存储空间的别名,快速地找到取出其中的数据

数据类型

​ **基本数据类型**:

​ **数值**:整数

​ int 4个字节 32位 [-2^31-2^31-1]===[-2,147,483,648,2,147,483,647]

​ byte 1个字节

​ short 2个字节

​ long 8个字节

​ 小数/浮点数

​ float 4个字节

​ double 8个字节

​ **字符型**

​ char 存储单个字符 使用单引号引起来 如 '男' '1' 2个字节

​ '0'----48 'A'----65 'a'-----97

​ **布尔型**

​ boolean 真true 假 false

​ **引用数据类型**:

​ 字符串

​ String 存储0-N个字符 使用双引号引起来 如“helloworld”

怎么确定数据类型:

​ 手机号码?字符串;

​ 身份证号号码?字符串;

​ 订单号?字符串

​ 银行存款¥1,234,456元?double

​ 不需要计算,可以存储为字符串。

数据类型的转换

​ 隐式转换,自动转换

​ 条件:数据类型要兼容:(byte、char、short、int、long、float、double),小转大

​ 强制类型转换 (数据类型) 变量

​ 条件:大转小

变量名

​ 命名规范:

​ 1)只能使用$,字母,数字,_,不能以数字开头

​ 2)不能使用关键字。public class static void String

​ 3) 要见名知意 age name score

​ 4)使用驼峰法(Camel命名法),第一个单词首字母小写,其后每个单词首字母大写:stuJavaScore

​ 5)区分大小写 age Age是两个不同的变量

变量的使用

1、申请空间(声明):数据类型 变量名;

​ int money;

​ double score;

2、存储数据(赋值)

​ money = 10;

可以合成一步:数据类型 变量名=值;

​ String name="王明";

​ boolean flag=true;

3、使用变量

​ System.out.println(name);

注意:变量必须先声明,后赋值,再使用。

练习:

输出MP3的数据:

品牌:漫步者

价格:299.9

颜色:白

库存:100

是否首发:false

输出某个学生的信息

姓名:王丽

性别:女

身高:165.8

年龄:18

常住地是否是西安?true

常量

概念

​ 常量:内存中的一块空间,空间中存储的数据不能改变

常量的使用

​ 语法:final 数据类型 变量名=值;

​ 命名规则:全部用大写,单词之间用_做分隔,如USER_ROLE_VIP

​ 字面常量:1,234,'a',"abc",false

​ 默认的数据类型:整数默认的数据类型是int,如果给long类型赋值,需要添加l/L,建议大写L;

​ 小数默认的数据类型是double,如果给float类型赋值,需要添加f/F;

​ 使用场景:1、固定不变的量建议使用常量,PI,WEEK_DAY

​ 2、特殊的含义,STATE_ON,STATE_OFF

运算符

赋值运算符

语法:变量名=表达式;

运算规则:从右往左

int a=12;

int b=a;

int c=a+1;

从键盘输入数据

//导包

import java.util.Scanner;

//初始化scanner

Scanner scanner=new Scanner(System.in);

//接收一个整数

int a=scanner.nextInt();

//接收一个double类型的数据

scanner.nextDouble();

//接收一个字符串String str=scanner.next();

复合赋值运算符

+= -= *= /= %=

int a=1;

a+=2;// a=a+2;

算术运算符

+ - * / %

//整除,整数/整数,结果一定是整数

int a=3/2 //结果是1

//求余 %

int b=13%2;

拆分一个三位数

int num2=986; // 98 6/// 9 86
int bai2=num2/100;
int ge2=num2%10;
//int shi2=num2/10%10;
int shi2=num2%100/10;
System.out.println(num2+"的百位数字是:"+bai2);
System.out.println(num2+"的十位数字是:"+shi2);
System.out.println(num2+"的个位数字是:"+ge2);

单目运算符:自增自减运算符++,--

++

int a=1;

a++; //a=a+1

++在后,先用再+

++在前,先+再用

        int a=1;
        //a=a+2;
        a+=2;
        System.out.println(a);
​
        System.out.println("-------");
        int b=12;
        //b++;
        //++b;   //b=b+1;
        //b--;
        --b;
        System.out.println(b);
​
        System.out.println("-------");
        int c=5;
        // ++在后,先用再+
        //--在后,先用再-
        //System.out.println(c++);
        int d=c++;
        System.out.println(c);
        System.out.println(d);
​
        System.out.println("-------");
        //++在前,先+再用
        //--在前,先-再用
        int x=15;
        //System.out.println(++x);
        int y=++x;
        System.out.println(x);
        System.out.println(y);

关系运算符

> < >= <= == !=

关系表达式的结果是boolean

== 等于

注意:关系表达式不要连写 1<a<6

        int num1=23;
        int num2=23;
        boolean flag=num1<num2;
        System.out.println(flag);

double类型在底层是不精确存储,不建议进行==比较

        double d1=1.0;
        double d2=1.0000000000000000000123;
        System.out.println(d1==d2);

字符串之间的等值比较不能用==,而要用.equals()

        String str1="abc";
        String str2="abc";
        System.out.println(str1==str2);
        Scanner sc=new Scanner(System.in);
        String str3=sc.next();
        System.out.println(str1==str3); //比较字符串的地址是否一致
        boolean f=str1.equals(str3);  //比较字符串的值是否一致
        System.out.println(f);

char类型在底层是数值存储,也可以进行大小比较

        char c='a';
        char d='b';
        System.out.println(c==97);
        System.out.println(c<d);

练习

从键盘上输入一个数,输出是否是偶数?

逻辑运算符

链接多个条件/关系表达式

&& 逻辑与 两个条件同时成立,整个表达式才成立 :同真则真,有假则假

|| 逻辑或 两个条件只要有一个成立,则整个表达式成立 :有真则真,同假则假

支持短路,即第一个表达式的结果就可判断整个表达式的结果,则第二个表达式就无需判断

!取反

        int num1=15;
        int num2 =1;
        boolean f=(num1<10)&&(num2>2);
        System.out.println(f);
        boolean f2=(num1<10)||(num2>2);
        System.out.println(f2);
​
        //&& || 支持短路
        boolean f3=(num1<10)||(num2++<3);
        System.out.println(f3);
        System.out.println(num2);
        
        //取反
        boolean f4=!f3;
        System.out.println(f4);

练习

输入一个数,判断是否是个四位整数

位运算符

​ <<左移:左移一位相当于乘二

​ >>右移:相当于除二

​ 按位与&: 同1则1,遇0则0

​ 位运算

​ 逻辑运算(3>7)&(2<8);//不支持短路

判断奇偶数

按位或 | :有1则1,同0则0

​ 逻辑运算 ,//不支持短路

​ 取一个数最近的偶树:或1,最低位置1,然后-1,最低位就变成了0

按位 异或 ^:不同为1,相同为0

​ 对同一个数字异或两次,可获得原数字

​ 第一次可看做加密,第二次可看做解密

优先级

先运算,再比较,然后连接,最后赋值

小括号的优先级最高,建议添加小括号增强代码的可读性。

交换算法

2程序流程结构

2.1顺序结构

从上往下依次执行

2.2选择结构

需要先判断条件, 再决定如何执行。

2.2.1 if结构

简单if:

​ 语法:if(条件表达式){

​ 执行语句

​ }

​ 条件表达式:结果式boolean,可以是变量,关系表达式,逻辑表达式。

​ 执行流程:判断条件表达式的值,如果为ture,执行语句;负责继续执行结构后的语句。

​ 使用场景:只有一个分支的情况下

​ 练习:有两个数,输出较大的那个数

​ 语法:if(条件表达式){

​ 执行语句1;

​ }else{

​ 执行语句2

​ }

​ 执行流程:先判断条件表达式语句1是否成立,如果不成立则输出执行语句2.

​ 练习:键盘上输入密码(正确的密码是123),输出密码是否输入正确

​ 输入一个数,判断奇偶数

​ 多重if结构

​ 语法:

​ if(条件){

​ 语句1;

​ }else if(条件2){

​ 语句2;

​ }else if(条件3){

​ 语句3;

​ }......

​ else

​ }

使用场景:多路分支,一个维度连续区间的多路分支。

​ if(条件1){

​ if(条件2) {

​ }

​ }else{}

​ }​​​

2.3循环结构

作业练习:

  1. 从键盘输入3个数,求最大值
import java.util.Scanner;
public class Day408{
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		System.out.println("请分别输入三个数:");
		int num1=sc.nextInt();
		int num2=sc.nextInt();
		int num3=sc.nextInt();

		
		if(num1>num2&&num1>num3){
		System.out.println(num1);

		
		}else if(num2>num3){
			System.out.println(num2);
		}else{
			System.out.println(num3);
		}
			
	}
}

 

2.模拟取款,输入取款金额,如果余额够,显示余额;否则提示余额不足。

import java.util.Scanner;
public class Day409{
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入取款金额:");
		int money=50000;
		int num2=sc.nextInt();

		
		if(num2>money){
		System.out.println(num2);

		
		}else if(num2<money){
			int yu=money-num2;
			System.out.println("您的余额为:"+yu);
		}else{
			System.out.println("余额不足");
		}
			
	}
}

3.我想买车,买什么车决定于我在银行有多少存款:

        如果我的存款超过500万,我就买卡迪拉克

        否则,如果我的存款超过100万,我就买帕萨特

        否则, 如果我的存款超过50万,我就买依兰特

        否则, 如果我的存款超过10万,我就买奥托

        否则, 如果我的存款10万以下 ,我买捷安特

import java.util.Scanner;
public class Day410{
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你的存款:");
		int money=sc.nextInt();

		if(money<100000){
		System.out.println("购买捷安特");

		
		}else if(money<500000){
			System.out.println("购买奥拓");
		}else if(money<1000000){
			System.out.println("购买伊兰特");
		}else if(money<5000000){
			System.out.println("购买帕萨特");
		}else{
			System.out.println("购买凯迪拉克");
		}
			
	}
}

4.机票的价格受季节旺季、淡季的影响,头等舱和经济舱价格也不同。假设机票原价5000元,请根据出行的月份和选择的仓位输出实际的机票价格。

旺季(4-10月)

头等舱

九折

经济舱

八折

淡季

头等舱

五折

经济舱

四折

控制台输出如下:

请输入您出行的月份:1-12

5

请选择头等舱(1)还是经济舱(2)?

2

您的机票价格为:3000.0

import java.util.Scanner;
public class Java3 {
    public static void main(String[] args) {
       Scanner sc =new Scanner(System.in);
                System.out.println("请输入您的出行月份:");
                int month=sc.nextInt();
                System.out.println("请选择头等舱(1)还是经济舱(2)?");
                int cang=sc.nextInt();
                int money=5000;

       if (month>3&&month<11){
               System.out.println("您是旺季出行");
               if(cang==1){
                   double money1=money*0.9;
                   System.out.println("您的头等舱票价为"+money1);
               }else{
                   double money2=money*0.8;
                   System.out.println("您的经济舱票价为"+money2);
               }
    }else {
           System.out.println("您是淡季出行");
           if(cang==2){
               double money3=money*0.5;
               System.out.println("您的头等舱票价为"+money3);
           }else {
               double money4=money*0.4;
               System.out.println("您的经济舱票价为"+money4);
           }
       }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值