Java基础语法

代码规范

1:

  • 注意换行。
  • 变量的声明尽量是每一个变量独占一行,即使变量的类型是一样的,方便变量注释。
  • 关键字之间只认一个空格。
  • 不要使用技术性很高,难懂,易混淆的语句,方便日后的二次开发,和别人的维护。
  • 注意编写代码的符号一定要使用英文的符号,即半角符号。

2:

注释是个好东西,重要性不必说了。

注释内的东西不被编译。

// 单行注释

/*  多行注释 */

/** 
*这里是文档注释
*/

我们所看到的api其实就是有文档注释自动生成的。

基本数据类型

整数类型

  • byte 1字节
  • short 2字节
  • int 4字节
  • long 8字节
//创建整型变量
byte a=12;
byte a=12, b=-13;

//创建long类型的整型变量
long a=165415312L;
long a=123L;
long c=123L + 1565L;
//创建long类型的时候和其他的有点不一样,需要在数值后面加上 L 或者是 l ,否则可能会造成精度的丢失。

在Java中一个整数有默认类型(int)

//十进制赋值
int a= 33;
//八进制赋值
int b=033;
//十六进制
int c= 0X33;

浮点类型

  • float 4字节
  • double 8字节
// 创建浮点类型变量
//浮点数的默认类型为 double 类型

float a=1.1F;
float b=-2.4F;
//在小数的末尾需要加 F 或者是 f 后缀

double a=3.141592653;
double b=3.14159265253D;
//这里呢,double的类型可以加上后缀 D 或者 d,或者不加,原因是浮点数的默认类型为double 

Java中的浮点值是近似值,非常不准确

例如:

double a = 4.35 *100;
System.out.println(a);

结果是

434.99999999999994
这个怎么解决呢?
这就要使用一个方法

double a = 4.35 * 100;
System.out.println(Math.round(a));

这时输出置就是:

435

再例如:

double a = 0.1;
double b = 2.0 - 1.9;
System.out.println(a == b);

按照我们所理解的应该是true
但机器的运行结果是:

false
怎么来解决呢?
我们可以使用最小数对比法
可以和 1e-6 来相比较,如果是小于,我们就视为0,反之亦反。这个最先是C语言中用来判断是否为零的

double a = 0.1;
double b = 2.0 -1.9;
System.out.println(Math.abs(a-b)<1e-6);
// Math.abs() 方法被用来取绝对值

答案是:

true

字符类型
用单引号包含的的可打印的单个符号。

'a', 'M', '8', '#', '文', ' '

//以上都是字符,以下不是

"A"  //不是一个字符,因为是用 双引号扩起来的

'8'  != 8 //左边为字符,右边为整型常量

这两个8是不一样的

System.out.println('8'*2);  // 字符编码 *2
System.out.println(8*2);    //数值 *2

输出结果是:

112
16

**char 的使用同C语言,不仅可以用来存字符,还可以用来存整数(即为字符编码),但是Java中的char采用了更高级的Unicode编码,取值范围为
0~65536**

例如:

//以字符来赋值
char a1 = 'a';
char b1 = '汉';
char c1 = '2';

System.out.println(a1);
System.out.println(a2);
System.out.println(a3);

//以字符编码来赋值
char a2 = 97;
char b2 = 27721;
char c2 = 50;

System.out.println(a2);
System.out.println(b2);
System.out.println(c2);

运行结果是:

a

2
a

2

转义字符:

\'      //单引号字符

\"      //双引号字符

\\      //反斜杠字符

\t      //垂直制表符,将光标移动到下一个制表符的位置

\r      //回车

\n      //换行

\b      //退格  

\f      //换页

//示例:
System.out.ptintln("[\101]");
//这里的‘\’表示以八进制赋值,101转换为十进制就是65,所以输出的是 ‘A’

布尔类型

使用关键字: boolean 创建

这个类型只有两个值:true false

关系运算符

运算结果是一个布尔值

同C语言一样,不能够串联使用关系运算符
例如:

a < b

数据类型转换

勿以小杯乘大物

小转大:

  • 隐式转换(自动转换)
    这是自动转换的顺序图:
    这里写图片描述

低精度自动向高精度转换:
低精度类型的值可以直接赋给高精度类型:
这里写图片描述

byte a = 8;
System.out.println(a);
int b= a;
System.out.println(b);
long c =b; 
System.out.println(c);
double d = c;
System.out.println(d);


//char

char e = 'A';
int x = e-2;
//运行结果是:63
//这说明两者是相互兼容的
  • 显式转换(强制转换)

可适用于引用的类型:

(类型名)要转换的值

示例:

int a = 100;
byte b = (byte)a;

大转小

只能使用强制转换,还可能造成细节丢失

double x = 3.1415926;

float f = (float)x;
System.out.println(f);
int i = (int)x; //直接舍弃掉小数
System.out.println(i);
//这些都是要丢失的

自增自减运算符

  • 前置形式
 ++a;  // 先加1再使用

 --b;  //先减1再使用
  • 后置运算
a++; //先使用,再加1
b--;  //先使用,再减1

注意:

(a+b)++; 
--(x+y); 

//这种写法是错误的,诸如此类都是错误的
//只能够给一个变量适用

三元运算符

返回值 = 判断公式 ? 结果1 : 结果2;

int a = 1;
int b = a < 3 ? 20 : 30;

结果是:

20

注意:这个运算符是有返回值得,这个返回值是不能够丢失的。

位运算符

  • 位逻辑运算符

这里写图片描述

逻辑运算符运算结果:

这里写图片描述

总结:
与:同真为真
或:有真为真
异或:相同为假,不同为真
取反:真为假,假为真

注意:运算的时候要转换成二进制!

  • 位移运算符

这里写图片描述

int x = 64;
int y = 32;

// 位移之后是不对原变量的值产生影响

// x<<1;  这种写法是错误的。

x = x << 1;     //左移一位, 值乘以2
System.out.println(x);

//注意:下面的值分别是:8, 256
System.out.println(y>>2);

System.out.println(y<<3);
//

int x = 32;

x = x <<<2;

x = x>>>3;

//无符号位移

预算符的优先级

直接来图爽快

这里写图片描述

来了图,看了还是一脸的茫然,那就来点小题:

这里写图片描述

总结:

单目高于双目
按照运算符的作用来看,()这种级别最高,之后依次是算数运算符,位运算符,关系运算符,逻辑运算符,赋值运算符。

逻辑运算符

还是直接来图:

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值