Java基础语法

一、关键字和保留字的说明
1.关键字keyword:被java语言赋予了特殊含义,用作专门用途的字符串(单词)
特点:关键字中所有字母都为小写。
2.保留字reserved word:现有的java版本未使用,但是以后版本可能使用。
二、标识符
1.标识符:java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
技巧:所有自己可以起名字的地方都叫做标识符。
2.定义规则( 如果不遵守如下的规则,则编译不通过
①由26个英文字母大小写,0-9,_或$组成
②数字不可以开头
③不可以使用关键字和保留字,但能包含关键字和保留字。
④java中严格区分大小写,长度无限制
⑤标识符不能包含空格
三、标识符的命名规范
1.规范如果不遵守也能编译通过,但是建议遵守规范。
包名:多单词组成时所有字母都小写:xxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词爱看i是每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ  
2.见名知意
四、变量的定义
1.java定义变量的格式
数据类型 变量名 = 变量值;
数据类型 变量名 (变量的声明)
变量名 = 变量值 (变量的赋值)
五、定义变量的注意点
1.变量必须先声明,后使用,使用时是使用变量名来访问变量具体的值。
2.变量声明后必须进行初始化赋值。
3.变量都定义在其作用域内,在作用域内才是有用的。作用域一般就是{}。
4.在同一个作用域内,不可以定义同名的变量。
六、变量的分类
1.变量按照数据类型来分
基本数据类型:
数值型:整数类型(byte,short,long)、浮点类型:(float,double)
字符型(char)
布尔型(boolean)
引用数据类型:
类(class)也就是字符串类型、接口(interface)、数组(array)
2.变量在类中声明的位置(在面向对象中具体掌握)
成员变量:
实例变量(不以static修饰)
类变量(以static修饰)
局部变量
形参(方法、构造器中定义的变量)
方法局部变量(在方法内定义)
代码块局部变量(在代码块内定义)
七、整型 变量的使用说明
类型
占用存储空间
表数范围
声明
byte
1字节=8bit
-128~127
short
2字节
-2^15~2~15-1
int
4字节
-2^31~2^31-1
通常定义整型变量时使用int型
l ong
8字节
-2^63~2^63-1
声明long类型,必须以“l”或“L”结尾
八、浮点型变量使用说明
1.浮点型表示带小数点的数值。
2.float表示的数值比long还大。
3.通常,定义浮点型变量时,使用double型。(范围更大,精度更高)
类型
占用存储空间
表数范围
声明
单精度float
4字节
-3.403E38~3.403E38
定义float类型变量时,要以"f"或"F"结尾
双精度double
8字节
-1.798E308~1.798E308
九、 char型变量的使用说明
1.1字符 = 2字节
2.定义char类型变量,通常使用一对''。
3.内部只能写一个字符,多个编译不通过。
char c1 = 'a';
4.表示方式:①声明一个字符 ②转义字符 ③直接使用unicode值来表示字符型常量
char c5 = '\n' 换行符
char c5 = '\t' 制表符
char c6 = 'u0043' 表示c
十、乱码的情况
十一、boolean型变量
1.只能取两个值之一:true,false
2.常常在条件判断、循环结构中使用。
十二、自动类型提升(转换)运算
前提:这里只讨论7种基本数据类型之间的运算,不包含boolean类型的。
byte、short、char( 前面三种数据类型相互之间做运算的结果必须是int类型,也包括同种类型)→int→long→float→double 
string字符串类型变量只能做连接运算,实际上就是字符串的拼接。
结论:当容量小的数据类型的变量于容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
说明:此时的容量大小指的是,表示数的范围的大和小,比如:float容量大于long的容量。
十三、强制类型转换
强制类型转换:是自动类型提升的逆运算。
1.需要使用强转符:(强制转换的数据类型)
2.注意点:强制类型转换:可能导致精度损失(截断损失、内存溢出)。
十四、变量运算规则的两个特殊情况
1.编码情况1:
定义long型数据时,如果数字大小没有超过int型数据的范围,不会报错,超过则会报错;但是对于float型数据,必须加f后缀,否则一定报错。
2.编码情况2:
对于整型常量:默认为int型
对于浮点型常量:默认为double型
十五、String类型变量的使用
1.String类型属于引用数据类型,翻译为:字符串。
2.声明String类型变量时,使用一堆""。
3.String可以和8种数据类型变量做运算,且运算只能时连接运算:+。(相当于字符串的拼接)
4.运算的结果仍然是String类型。
十六、两个关于String的练习题
 
十七、不同进制的表示方式
二进制(binary):0,1;满2进1,以0b或0B开头
十进制(decimal):0-9,满20进1
八进制(octal):0-7,满8进1,以0开头表示
十六进制(hex):0-9及A-F,满16进1,以0x或0X开头表示,此处的A-F不区分大小写
十八、二进制转换为十进制的说明
 
二十九、使用Scanner从键盘获取int型数据
如何从键盘获取不同类型的变量:需要使用Scanner类:
1.导包:import java.util.Sacnner
2.Scanner的实例化 Scanner 变量名 = new Scanner(System.in);
3.调用Scanner类的具体方法,来获取指定类型的变量:比如输入int型数据  (在调用具体方法时最好在之前添加备注)
  int num = scan.nextInt();
4.注意:需要根据相应的方法来输入指定类型的值。如果输入的类型数据与要求的类型不匹配时,会报异常:InputMisMatchExcel 导致程序终止。
使用Scanner从键盘获取多种类型数据:
1.对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串。
2.获取字符串 String name  = scan.next()
3.获取布尔型 boolean ishome = scan.nextBoolean()
4.从字符串中获取单独字符的方法
char genderChar = gender.charAt(0);获取字符串中索引为0位置上的字符
三十、if-else的例题
1.else结构是可选的
2.针对条件表达式:
    如果多个表达式之间是”互斥“关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
    如果多个表达式之间是有交集的关系,需要根据实际情况,考虑清楚应该哪个结构声明在上面。
    如果多个表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了。
    如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略。但是不建议使用。
例题1
例题2:由键盘输入三个整数并分别存入num1 num2 num3
import java.util.Scanner;
class IfTest2
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入num1:");
        int num1 = scan.nextInt();
        System.out.println("请输入num2:");
        int num2 = scan.nextInt();
        System.out.println("请输入num3:");
        int num3 = scan.nextInt();
        if (num1>num2)
        {
            if (num3>num1)
            {
                System.out.println(num2 + "," + num1 + "," + num3);
            }
            else{
                if (num2>num3)
                {
                    System.out.println(num3 + "," + num2 + "," + num1);
                }
                else{
                    System.out.println(num2 + "," + num3 + "," + num1);
                }
            }
        }
        else{
            if (num3>num2)
            {
                System.out.println(num1 + "," + num2 + "," + num3);
            }
            else{
                if (num1>num3)
                {
                    System.out.println(num3 + "," + num1 + "," + num2);
                }else{
                    System.out.println(num1 + "," + num3 + "," + num2);
                }
            }
        }        
    }
三十一、if-else课后练习:笔试题
 
import java.util.Scanner;
class Dog_age
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入狗的年龄:");
        int dog_age = scan.nextInt();
        double age = 0;
        if (dog_age < 0)
        {
            System.out.println("请输入有效的年龄!");
        }else if (dog_age <= 2)
        {
            age = dog_age * 10.5;
            System.out.println(dog_age + "相当于人的:" + age + "岁。");
        }else{
            age = 21 + (dog_age-2) * 4;
            System.out.println(dog_age + "相当于人的:" + age + "岁。");
        }
    }
}
三十二、彩票问题(获取随机数)
如何获取一个随机数?10-99
int value = (int)(Math.random()*90+ 10);//[0.0,1.0) -> [0.0,90.0) ->[10.0,100.0)[10.0,100.0) -> [10,99)
公式:[a , b]; (int)(Math.random() * (b - a + 1) + a)
import java.util.Scanner;
class Test_Caipiao
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        int value =(int)(Math.random() * 90 + 10);
        System.out.println("测试产生的随机数:" + value);
        System.out.println("请输入您的数字:");
        int number = scan.nextInt();
        System.out.println("您输入的数字为:" + number);
        //接下来比较猜的数字和彩票数字,分别将两个数字拆个位和十位
        //a1 b1 分别表示彩票的个位数和十位数;a2 b2 分别表示猜的个位数和十位数
        int a1 = value % 10;
        int b1 = value / 10;
        int a2 = number % 10;
        int b2 = number / 10;
        //下面开始根据规则比较两个数确定奖励金额
        int reward = 0;
        if ((a1 == a2) && (b1 == b2)){
            reward = 10000;
        }else if ((a1 == b2) &&(a2 == b1)){
            reward = 3000;
        }else if ((a1 == a2) || (b2 == b1)){
            reward = 1000;
        }else if ((a1 == b2) || (a2 == b1)){
            reward = 500;
        }else{
            reward = 0;
        }
        if (reward > 0){
            System.out.println("恭喜您将获得以下奖励:" + reward);
        }
        else{
            System.out.println("抱歉,您的彩票作废");
        }
    }
}
import java.util.Scanner;
class  Test_Married
{
    public static void main(String[] args)
    {
        System.out.println("请输入您的条件:");
        Scanner scan = new Scanner(System.in);
        System.out.println("身高:");
        int height = scan.nextInt();
        System.out.println("财富是否一千万以上:");
        Boolean money = scan.nextBoolean();
        System.out.println("帅吗?");
        Boolean iscool = scan.nextBoolean();
        if ((height > 180) && (money == true) && (iscool == true)){
            System.out.println("我一定要嫁给他!!!");
        }else if ((height > 180) || (money == true) || (iscool == true)){
            System.out.println("嫁吧,比上不足比下有余。");
        }else{
            System.out.println("不嫁。");
        }
    }
}
三十三、switch-case结构的基本使用
switch(表达式){
case 常量1:
    语句1;
    //break;
case 常量2:
    语句2;
    //break;
... ...
case 常量N:
    语句N;
    //break;
default:
    语句;
    //break;
注意:
1.根据switch表达式中的值,一次匹配每个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句,当调用完执行语句后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾为止。
2.有一个case条件判断成功,则没有break的前提下,后面case中的语句都会执行。
3.break关键字可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构。
4.switch-case结构中的表达式,只能是以下的6种数据类型之一:byte、short、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
5.case之后只能声明常量不能声明范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值