java基础语法总结

java基础语法

在开始讲基础语法的时候,首先要明白这些代码要写在那里,在创建一个类的时候第一个要先写一个包,所以要先去了解包是什么?

包机制

  1. **包的定义:**相当于一个文件夹的目录文件,表明路径

  2. 包的语法:

    package pkg1.pkg2;
    
  3. 在一些公司中一般就是公司域名倒置作为它的包名,例如

    com.baidu.www
    
  4. 为了能使用某个包,在Java中导入包时用import

    import java.io.IOException;//特殊有加*的,指把包内的所有东西导入
    

标识符

在Java所有的组成部分都需要名字。类名,变量名,方法名都被称为标识符。所以我们必须要

注意一些标识符的命名规则:

  • 所有的标识符都应该是以字母,美元符,下划线开始的

  • 非首字符比首字符多一个数字

  • 不能使用关键字作为变量名和方法名

  • 标识符的大小写有区分

  • 可以使用中文命名,但是一般不用,最好不要用拼音会显示的low

    举个例子:ting  ==   listen  第一个正常程序员第一眼绝对看不出这要表达什么东西,第二个就很容易识别
    

下面为一些标识符的判断

String 王者荣耀 =“倔强青铜” √
String name ="qinjiang"√
String name2 ="qinjiang"√
String _name2 ="qinjiang"√
String 1_name ="qinjiang"×

你以为可以开始语法的讲解了吗?其实不然,还要继续做一些铺垫

在语法中经常要定义一些对象,这些对象是有类型的,所以接下来开始描述数据类型

数据类型

数据类型有两类

在这里插入图片描述

基本数据类型包括:整数型,浮点型,字符型和逻辑型

**引用类型:**暂时还没总结以后再说

八大基本数类型

整数

int num = 10 //最常用
byte num2 = 20
short num3 = 30
long num4 = 40L //long类型要在数字后面加个L

浮点数(小数)

float num5 = 50.1F //float类型要在数字后面加个F
double num6 = 60.21231 //常用

字符

char name =‘a’//字符只能是单个文字或者字母
字符串用String
String不是关键词是类
String name =“小明”

布尔值

boolean flag = ture
boolean flag = false

一定要记住:String不是基本数据类型,它是一个类

接下来就要开始拓展一些内容了,很重要,很重要,很重要

数据类型的拓展

整数

进制

二进制ob 十进制 八进制0 十六进制0x

在这里插入图片描述

float 有限 离散 舍入误差 大约 接近

double

最好避免完全使用浮点数进行比较

换句话来说就是它是个大约值,有误差最好不要直接比较,如果想要去比较小数的大小的话,可以使用math包的方法

字符拓展

强制转换

所有的字符本质还是数字

编码 Unicode 表:97=a 65=A 两个字节 表示U0000-UFFFF

所以可以把字符转换为数字,具体的实现如下

在这里插入图片描述
在这里插入图片描述

String类型的拓展(String不是基本数据类型)

在这里插入图片描述

在这段代码中,都定义了一个内容为hello world的String变量,理论上来讲他们应该是相等的,但是使用了new这个用法,那么比较就不单单是比较他们的值了,还要去比较他们所在内存的位置,只有他们的位置和内容一样才能相等。这时就肯定有小伙伴问了难道就不能比较了嘛?那肯定不是啦,一般字符的比较时可以调用一个equals的方法来比较。不多说,来代码

public class Demo {
    public static void main(String[] args) {
        String a = "hello";
        String b = "hello";
        System.out.println(a.equals(b));
    }
}
布尔值拓展
boolean flag = ture;
if (flag==true){}  //新手
if (flag){}    //老手
//代码要精简易读

兄弟们,虽然说这人人都想着偷懒,但是作为初学者还是安安心心的走新手路线好一点。眼高手低,代码之大忌。

类型的转换

强制转换

当类型从高等级转换到低等级时叫做强制转换

格式:(类型)变量名

int i = 128;
byte = (byte)i;
输出结果
128  -128(原因为byte的范围为127——-128,溢出)

自动转换

当类型从低等级转换到高等级时叫做自动转换

格式:直接写

int i = 128;
double b = i;

最后呢总结一下注意点

  1. 不能对boolean值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在高转低的情况叫强制转换

  4. 转换时可能会出现溢出或者精度问题

  5. 在操作数字较大时要注意溢出问题(数字之间可以用下划线分割)

下面这是你们未来的年薪,结果运算的时候不小心超出了int类型的边界,给你们的工资变成负数,从赚钱变为了还债,所以代码一定要考虑溢出
int money = 10_0000_0000;
int years = 20;
int total = money*years;//-1474836480,溢出
long total2 = money*years;//默认为int,在转换前出问题了
long total3 = money*((lng)years);

变量,常量,作用域

这部分很重要,一定要去理解

变量

顾名思义,变量就是一个可以改变的量

局部变量

顾名思义就是局限于一部分的量,一般只能作用与一个方法内,而且必须声明和初始化

是不是有点看不懂了,所以上代码

public void add(){
    int i=10;//局部变量,作用与方法内部,其作用范围也在方法内
}
实例变量

从属于对象,即在使用时需要创建一个对象来调用这个变量

兄弟们,是不是又看不懂了,让我来给你们解释一下,实例变量呢就是一个对象的附庸,就好比人,它身上的属性有年龄和名字,那么你要用他的名字和年龄,是不是应该先去找一个人,然后标明这个年龄和名字是从属于这个人的,下面的代码就是这个意思

public class Demo{
    //就是说有一个大群体,在Java里面叫类,然后这个类的共有属性是name和age
    String name;
    int age;
    
    public static void main(String[] args) {
        //你要调用这两个属性,那么你必须要先去创建这个类的对象吧,这就是java里面的new对象
        Demo demo = new Demo();
        //有了这个对象才能去调用他的属性
        System.out.println(demo.age);
        System.out.println(demo.name);
}
    输出结果 0 null
类变量

从属于类的变量,即在该类中可以直接使用(类变量前面有static)

public class Demo {
    //实例变量
    String name;
    int age;
    //类变量static
    static double salary = 2500;


    public static void main(String[] args) {
        Demo demo = new Demo();
        System.out.println(demo.age);
        System.out.println(demo.name);
        System.out.println(salary);
    }
}

常量

初始化后不能在改变的值!

一般用大写字母命名

final 常量名 =;
final double PI = 3.14;//final只是一个修饰的作用表明该值为一个常量,对于位置无硬性要求

作用域

就是指他们作用的范围

基本的运算符

基本运算符
算术运算符:+,-,#,/,%,++,–,
赋值运算符:==
关系运算符:<,>,>=,<=,==,!=
逻辑运算符:&&(与),||(或),!|(非)
位运算符:&,|,~,>>,<<,>>>
条件运算符?:
扩展赋值运算符:+=,-=,**=,/=*自增自减运算符
b=a++(先给b赋值,再让a+1)c=++a(先让a+1,再给c赋值)

Math.pow(幂运算)
这里先自行了解一下

现在基础的东西已经铺垫完成,开始我们的正式内容

用户交互Scanner

在我们Java中要想输入时便要用到Scanner,在使用Scanner的时候一定要记得导入包java.util.Scanner

开始说它的基本语法

Scanner scanner = new Scanner(System,in);

开始展示代码

public class Demo01 {
    public static void main(String[] args) {
        //从键盘接收数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收");
        //判断是否输入
        if(scanner.hasNext()){
            String str = scanner.next();
            System.out.println("输出的内容为" + str);
        }
        scanner.close();

    }
	//注意:scanner用完以后一定一定要关闭它
}

这时候肯定有人看不懂if语句的东西了,首先要知道if语句是表示判断的,具体用法后面在将,先看懂代码,开始去认识next方法,在Scanner类中,next()和nextLine()方法来获取输入的字符串,判断的话用hasNext()和hasNextLine()判断是否还有输入的数据

next()和nextLine()的区别

  1. next()时接收下一个字符串,当输入空格时就会视为结束
  2. nextLine()接收下一行字符串,当输入回车时视为结

接下来开始进阶代码

public class Demo05 {
    public static void main(String[] args) {
        //我们可以输入多少个数字,并且求和与平均数,每输入一个数字用回车来确认,通过输入非数字来结束输出结果
        Scanner scanner = new Scanner(System.in);
        double sum = 0;
        int size = 0;
        while(scanner.hasNextLine()){
            double x = scanner.nextDouble();
            sum = sum + x;
            size++;
            System.out.println("当前输入的数字的和为" + sum + "当前输入的数字个数为" + size);
        }
        System.out.println("当前输入的数字总和" + sum);
        System.out.println("当前输入的数字的平均数为" + sum/size);
        scanner.close();
    }
}

ze = 0;
while(scanner.hasNextLine()){
double x = scanner.nextDouble();
sum = sum + x;
size++;
System.out.println(“当前输入的数字的和为” + sum + “当前输入的数字个数为” + size);
}
System.out.println(“当前输入的数字总和” + sum);
System.out.println(“当前输入的数字的平均数为” + sum/size);
scanner.close();
}
}


这里解释一下while,while是循环语句,在该代码中,只要有数字他就会一直执行,如果你输入的不是数字那么就会跳出循环执行下一步

未完待续。。。。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值