java基础


typora-root-url: …\png


java基础

注释

作用:不会执行,是给人看的,解释程序的作用。

分为三种:单行注释,多行注释,文档注释

单行注释

public class 注释相关 {
    public static void main(String[] args) {
        System.out.print("Hello World!") ;//这是单行注释,输出Hello World
    }
}

多行注释

/*public class 注释相关 {
    public static void main(String[] args) {
        System.out.print("Hello World!") ;
    }
}*/

文档注释(JavaDoc)

在这里插入图片描述

以下为书写方式

/**
*@Author Renatus
*@Description Hello World
*/

在这里插入图片描述

官方有提供一些文档帮助,现阶段暂时不用学

在这里插入图片描述

可以加在类上方也可以加在方法上方

在这里插入图片描述

生成文档的命令,还是很有用的,生成以后点击index.html即可进入

新建空工程并添加Java模块

1.创建的时候直接选择空项目

2.文件–>x新建–>新模块–>选择java新建

3.新建–>项目结构–>项目进行如下设置
在这里插入图片描述

即可开始写程序

标识符和关键字及数据类型

关键字及标识符

在这里插入图片描述

在这里插入图片描述

public class 标识符相关 {
    public static void main(String[] args) {
        String About="111";
        int about=1;
        char _text=1;
        double $123=12;      
        String 王者荣耀="最强王者"//可以看到变量名可以以大小写字母和$及_以及中文开头,其他的都不可以
      /*int *qwe=1;
        int 1qwe=1;
        int  w@=1;
        int String=1;
        //以上种种都是不可以的*/
    }
}

数据类型

字节相关

在这里插入图片描述

java是一种强类型语言(要求变量使用要严格符合规定,所有变量必须先定义以后才能使用),其数据类型分为两大类

基本数据类型

数值类型

1.整数类型:

​ byte:占1个字节:-128-127

​ short:占两个字节:-32768-32767

​ int:占四个字节:-2147483648-2147483647

​ long:占8个字节:。。。

2.浮点类型:

​ float:占四个字节

​ double:占8个字节(常用)

3.注意字符型变量char占两个字节

布尔l类型:占一位,值只有true和false两个

引用数据类型

类,接口,数组

相关代码

public class 标识符相关 {
    public static void main(String[] args) {
        String About="111";
        //整数类型
        byte num1=30;    //只能表示-128-127,输入其他范围的数值无法表示
        short num2=20;//2个字节
        int num3=1;  //4个字节,一般够用了,不会超出范围了,最常用
        long num4=40L;//8个字节,一般要在数字后面加L。以区分类型这还是挺重要的
        //浮点类型
        float num5=50.1f;//注意一般要在数值后面加f以区分数据类型
        double num6=60.23;//这个是浮点类型常用的
        //字符类型
        char name= 'a';//一定注意字符是一个字符,不是字符串
        //字符串(不是关键词!!!!)
        String name2="王者荣耀";
        //布尔
        boolean flag=ture//只有两个值
    }
}

数据类型扩展及一些面试题

关于不同进制在java中的表示方法、

        //关于不同进制的数值表示方法
        int i1=10; //常规的十进制表示方法
        int i2=010;//八进制表示方法
        int i3=0x10;//十六进制表示方法
        int i4=0b10;//二进制表示方法
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);

输出结果:
10
8
16
2

浮点数的一个小问题

一个面试题:银行业务如何表示?

float i=0,1f;
double j=0.1;
System.out.println(i==j);//==可以判断两个变量是否相等
System.out.println(i);
System.out.println(j);

输出结果:
false
0.1
0.1

//更诡异的操作
float a=21212121212121212121f;
float b=a+1;
System.out.println(a==b);//true

输出结果:
false
0.1
0.1
true

此类浮点问题原因

浮点类型可表示的范围是有限的,但同时也是离散的,会存在一个舍入误差,是一个大约值。

总结:所以最好避免完全使用浮点数进行比较!!!!

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

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

那么银行业务的问题如何解决呢

要使用一个数学工具类:BigDectmol

关于字符的一些拓展

  char c1='a';
  char c2='中';
  System.out.println(c1);
  System.out.println(c2);
  System.out.println((int)c1);
  System.out.println((int)c2);//一定注意强制转换的写法,这个和c语言似乎不一样!!!!
  //其实在计算机中,每一个字符都是对应一个ACSLL码的
//所有的字符本质上还是数字 
//一般使用的是Unicode编码方法,占两个字节,最多表示65536个字符
  char c3='\u0061';//这就是a对应的编码了,这个最少要知道
  System.out.println(c3);

输出结果:
a

97
20013
a

转义字符拓展

System.out.println("-----------------转义字符拓展--------------------");
System.out.println("hello\tworld");//制表符
System.out.println("hello\nworld");//换行
//。。。还有很多的,可以去了解一下

对象,内存分析的初探

System.out.println("-----------------对象,内存分析初探--------------------");
 String s1="Hello World";
 String s2="Hello World";
 String s3=new String("Hello World");
 String s4=new String("Hello World");
 System.out.println(s1==s2);
 System.out.println(s3==s4);
//这个new就是新建一个对象,两者在内存分配的地址上是不同的,故而两者不是相等的,日后深入研究

输出结果:
true
false

布尔类型拓展

boolean flag1=true;
if(flag){System.out.println(1); }//只写变量和==true是一样的。

类型转换

在这里插入图片描述

强制类型转换(从高到低)

int ii=128;
byte jj=(byte)ii;//注意转换的写法
System.out.println(ii);
System.out.println(jj);
//这里由于byte范围是-128-127,服128给byte变量会导致溢出,可以参考c语言的溢出机制(一个圆环)

自动类型转换(从低到高)

int ii1=128;
double jj1=i;
System.out.println(jj1);

输出结果:
128.0

类型转换注意点

/*1.不能对布尔类型进行转换
2.不能把对象的类型转换为不相干的类型(字符类型转数字类型等等)
3.强制转换是大容量转换至低容量的时候才用
4.注意精度问题(浮点转化为整形时会去掉小数部分等等)和数值溢出问题*/

深化字符本质也是数的概念

        System.out.println("深化字符就是数的概念");
        char cos='a';
        int sin=(int)cos+1;
        System.out.println(sin);
        sin=1;
        cos+=(char)sin;
        System.out.println(cos);

输出结果:
98
b

小知识

//数字很大的时候可以用下划线分割,并不会影响输出
int q=10_0000_00000;
//当大容量数据类型同低容量数据类型进行计算时,结果默认按大容量算

变量,常量,作用域

变量

在这里插入图片描述

小习惯更正

尽量不要在一行里面定义多个变量(我就有这个坏习惯),这样会使程序的可读性变差的!!!

作用域

在这里插入图片描述

可以看到类变量一定要有一个static,实例变量就没有,局部变量就是在方法(函数)中的变量。

public class java__base {
int o;//实例变量:是在方法之外的量,这个例子就是在main方法之外,要注意实例变量是可以不进行初始化赋值的,但是要注意使用他就没这么容易了
double p;
boolean xxx;
    
static double ix=10000;//类变量
    
public static void main(String[] args) {
//变量就省略了,基本都会了,但是一定注意一个习惯,尽量不要在一行定义多个变量,这样会使程序可读性变差

//局部变量:是在方法中的,生命周期也是方法的长度,要注意局部变量必须声明和初始化值
int x=1;//可以看到,数据类型,值一个都不能少

//实例变量:是在方法之外的量,这个例子就是在main方法之外,要注意实例变量是可以不进行初始化赋值的,但是要注意使用他就没这么容易了
//我们在开头定义了一个实例变量 int o;可以自行去查看
//实例变量使用方法
java__base xx=new java__base();//格式:变量类型(类名) 变量名字=new 类名();
System.out.println(xx.o);//可以看到没有定义数值但是输出了0(默认值)
System.out.println(xx.xxx);//输出false
System.out.println(xx.p);//输出0.0
//常见的实例变量默认值 :0(整形)  0.0(浮点) 0000   false(布尔类型,这个很重要)
//除了基本类型都是null

//类变量:是从属于类的变量,也就是说,在任何方法里都可以调用,格式就是static 数据类型 变量名=赋值;
System.out.println(ix);//注意类变量只能定义在类中,不能定义在方法中
}

常量

在这里插入图片描述

final double pi=3.14;

在这里插入图片描述

了解一下修饰符的概念

变量命名规范

在这里插入图片描述

一定注意规范!!!

运算符

在这里插入图片描述

基本运算符

long aa=1234455667;
int w=123;
short e=50;
byte z=20;
System.out.println(aa+w+e+z);//输出类型long
System.out.println(w+e+z);//输出类型int
System.out.println(e+z);//输出类型int
//总结:当加减运算中有long是,输出为long,其余的均为int

在这里插入图片描述

还有很多其他操作,试一试就知道了(比如浮点大于整形,当运算中有double会输出double)

自增自减运算符,复杂运算

 //自增自减运算符
int t=1;
int t1=t++;//t++,先将t赋给变量,之后在下一行开头自加1
System.out.println(t);
int t2=++t;//++t,先进行自加,再把值赋给变量
System.out.println(t);
System.out.println(t1);
System.out.println(t2);

在这里插入图片描述

这个还是很重要的

//复杂运算(幂运算,开根运算等等)
double tx=Math.pow(2,3);//要引入Math类,还有很多运算,可以尝试,一定注意大小写
double ty=Math.sqrt(4);
System.out.println(tx);
System.out.println(ty);

在这里插入图片描述

逻辑运算符,位运算符(含短路运算)

逻辑运算

boolean pp=true;
boolean qq=false;
System.out.println("pp&&qq:"+(pp&&qq));//与
System.out.println("pp||qq:"+(pp||qq));//或
System.out.println("!(pp&&qq):"+(!(pp&&qq)));//非
//短路运算:如果与运算第一个为false,后面不执行,或运算也有相似的
int cc=4;
boolean bb=qq&&(cc++<4);
System.out.println(cc);//可以看到cc并未改变,故而可验证短路运算

在这里插入图片描述

注意图中的写法,加号其实有结合的意思

位运算

System.out.println("-----------------位运算符相关--------------------");
int aaa=0b0000_0101;
int bbb=0b1010_1111;
System.out.println(aaa|bbb);//位或
System.out.println(aaa&bbb);//位与
System.out.println(aaa^bbb);//位亦或,相同为0,不同为1
System.out.println(~bbb);//未非
System.out.println(2<<3);//0000 0010中1左移三位
System.out.println("重点:左移为*2,右移为除2");

在这里插入图片描述

作为一名单片机玩家,这玩意真的都用吐了

拓展运算符(+=,-=,*=,/=)

略,c语言都学吐了

连接运算符拓展

System.out.println("-----------------连接运算符相关--------------------");
System.out.println(""+1+2);
System.out.println(1+2+"");

在这里插入图片描述

当第一个元素为string时,后面的加号默认为连接符,会将后面的数字转化为字符并连接

三元运算符

System.out.println("-----------------三元运算符相关--------------------");
int xxx=80;
int yyy=70;
System.out.println((xxx>60)?"及格": "不及格");//问号前为符合条件语句

在这里插入图片描述

包机制

在这里插入图片描述

包的本质其实就是一个文件夹

注意红字

其实就是这一个个文件夹,用以区分程序

在这里插入图片描述

如果放在包下面,这句语句不能省!!!,好好了解结构

在这里插入图片描述

有的时候有的函数只有在相应的包里面才有,所以需要导入,导入语法

import +类的包路径;(而且要放在package的下面)

尽量不要去让包里的名字重复,因为这样的话导入的时候会报错的

在这里插入图片描述

通配符,import +包路径+* 作用:将包中所有的类全部导入!!!!初学者神器啊2333

在这里插入图片描述

重要的一份资料,请认真阅读

在这里插入图片描述

认真阅读,事关规范与基础的!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值