java基础知识

Java语言特点

  1. 平台无关性 :软件的运行不会因为操作系统、处理器的变化而导致程序无法运行或出现运行错误。
  2. 面向对象
  3. 简单性 :java语言中略去了运算符重载,多重继承等概念,简化了程序设计者的内存管理工作。
  4. 分布性 :包括操作分布和数据分布。
  5. 健壮性
  6. 解释性 :java语言不针对CPU进行编译,由JVM解释和执行。
  7. 多线程 :java语言支持多线程,允许多个线程共存于统一内存中,且共享资源。
  8. 多态 开源
  9. 结构中立 安全性

注释

注释:用来解释说明程序
1. 单行注释 ://注释内容
2. 多行注释 :/* 注释内容*/
3. 文档注释 :/** 文档内容*/

关键字

关键字 :也称为保留字,是在ava语言中已经被赋予了特定意义的单词符号,不是标识符,不能作为类名。(简单讲就是已经被Java征用了的英文单词)
关键字的特点 :单词全是小写 class 关键字用来定义一个类。
(如果使用的是第三方记事本,那么蓝色显示的单词就是关键字)

常用关键字
关键字用途
byte、short、int、long。char、float、double、Boolean、void基本类型
new、this’null、super创建引用对象
if、else、swich、case、default选择语句
do、while、for循环语句
true、false布尔量
private、public、protect、final类型修饰(包含访问控制)

标识符

通常是对类,方法、变量,常量类型、数组和文件等的命名,称之为标识符,标识符是一个具有特定规则的字符序列。
命名规范 :

  1. 英文字母跟数字或一些符号的组合
  2. 不能以数字开头,也不要用纯数字命名 错误的例子: 1A , 123
  3. 不要用关键字来命名 例如 true,null,false
  4. 尽量不要用特殊的符号来命名 但是 (_) ,($) 可以使用
  5. 命名最好见名知意
  6. 给类命名首字母大写,如果有多个字母采用驼峰式命名 例如 :StudentName

基本数据类型

整数型字节数范围
byte1(8bit)-128 ~ 127
short2(16bit)-2^15 ~ 2^15 - 1
int4(32bit)-2^31 ~ 2^31 - 1
long8(64bit)-2^63 ~ 2^63 - 1
浮点数字节数范围
float4(32bit)-3.40310^38 ~ 3.40310^38
double8(64bit)-1.79810^308 ~ 1.79810^308
字符型字节数范围
char2(16bit)0 ~ 2^16 - 1 = 65535

类型转换

自定义类型转换
  1. 按照“字节数少的类型转换为字节数多的类型“的原则。
  2. 一般按照“byte——short”或“char——int——long——float——double”的原则进行类型转换。
    自动类型提升:byte short char 在参与数学运算时,会自动提升为int类型,如果还有long ,float double 参与运算,则会相应的提升为 long float double ,布尔类型不参与数学运算,byte short char 之间不发生转换。
    	byte a=1;
    	short b=2;
    	long num=3L;
    	float f=1.1F;
    	double dd=4;
    	//byte r=a+b;  报错
    	double r=a+b+num+f+dd;
    	System.out.println(r);
    	System.out.println(dd);
    	结果为:
    	11.0999999
    	4.0
    
强制类型转换
强制类型转换的语法形式为:
(<类型>)	(<表达式>)

需要注意的是:
强制类型转换:强制将一个数据,转换成需要的数据类型,有可能会发生精度损失的问题。(一般不建议使用)

常量

  1. 常量 :是基本类型值的源代码表示形式,在源代码中是一个字符串,语法上是一个单词符号。(简单讲就是在程序执行过程当中,其值不发生变化的量。)
  2. 常量:字面值常量, 自定义常量
  3. 字面值常量:整数常量,浮点数常量,小数常量、字符常量,布尔常量,字符串常量和 null常量。
1. 整数常量:十进制、十六进制、八进制、二进制
  1. 十进制 :若干个0~9数字组成的串。例如 :123 452
  2. 十六进制 :以“0x”或“0X”开头,若干个0~9、a-f和A-F组成的串。例如 :0x123
  3. 八进制 :若干个0~7组成的串,首字符为0. 例如 :012 013
  4. 二进制 :以“0b”或“0B”开头,若干个0或1组成的字符串。 例如 :0b101 0B111
2. 小数常量:所有小数 例如 :1.1 ,3.14
3. 字符常量:就是用单引号括起来的单个字符 例如: ‘1’ ‘A’ ‘B’ ‘我’
4. 布尔常量: true false (这两个词也是关键字)
5. 字符串常量:就是用双引号所括起来的单个或多个字符 “helloworld”
6. null常量 :null (也是个关键字)可以用于给符合数据类型的变量赋初值等。

变量

变量 :一个有类型的储存单元(简单讲就是在程序执行过程中,其值发生改变的量),而且在编程是就已经确定类型,其类型可以是基本类型或引用类型。变量值由赋值(=)、自增(++)、自减(- -)运算来改变。

变量类型分为:
  1. 类变量
  2. 实例变量
  3. 阵列组件
  4. 方法形参
  5. 构造形参
  6. 例外形参
  7. 局部变量
变量注意事项:
  1. 作用域问题 :变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
  2. 初始化值问题 :没有初始化值不能直接使用
  3. 在一行上建议只定义一个变量 :可以定义多个,但是一般不建议

运算符

1. 算术运算符

运算符含义举例注释
++自增x++先运算在自加
- -自减- -x先自减在运算
++自加++x先自加后运算
- -自减x- -先自减后运算
+取正值
-取负值
*乘法
/除法
%取余

2. 赋值运算符

运算符含义举例注释
=赋值x=y+z把右边的值赋值到左边
+=x+=yx=x+y
-=j减x-=yx=x-y
<<=左移x<<=2x=x<<2
>>=带符号右移x>>=1x=x>>1
>>>=不带符号右移x>>>=3x=x>>>3

3. 比较运算符

运算符含义举例注释
!=等于x==MAX_VALUEx值等于MAX_VALUE时结果为true。
==不等于x!=y比较x和y的值,x不等于y时结果为true。
“==”和“=”是两个完全不同的运算符。

4. 逻辑运算符

  1. &&(逻辑与) :&& 只要左端为false 右端不需要运算,只有左端为true 右端会去运算
  2. &(逻辑与) :&左右两端都要运算,只要任意一端是false 其最终结果都是false, 只有两端都为true最终结果才是true。
  3. | (逻辑或) :| 两端都需要运算,只要任意一端为true ,其最终结果都是true,只有两端都是false,其最终结果才是false.
  4. || (逻辑或):||只要左端为true 右端就不需要运算,只有左端为false 右端才会去运算。
  5. ^ (逻辑异或) :相同为false 不同为true。
  6. ! (逻辑非) :取相反的结果,例如:!(4>6)结果为true。

5. 位运算符

位运算是对二进制补码进行的运算
位运算符有 :
  1. ~ :按位取反
System.out.println(~3); 
结果为:-4
0000 0011		补码
1111 1100		取反
---------------------------
1000 0100		补码
  1. & :按位与
System.out.println(2&3); 
结果为:2
0000 0010		补码
0000 0011		补码
  1. ^ :按位异或
System.out.println(1^4);
结果为:5
  1. | :按位或
System.out.println(1|2);
结果为:3
  1. << :左移 指 把<<左边的数据乘以2的移动次幂 例如 10<<3 结果 10*2^3=80
    6.>> :带符号右移 指把>>左边的数据除以2的移动次幂 例如 40>>3 结果 40/2^3=5
    7.>>> :不带符号右移
运算符规则
&有0则0
有1则1
^相同则0,不同则1
~按位取反 0变1 1变0

6. 三目运算符

三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
三元运算符的执行流程
计算关系表达式的值,如果为true,运算后的结果是表达式1;如果为false,运算后的结果为表达式2;
例如	:int a=(10>20)?30:50; 	a=50

三元运算符是(?:)是又结合的,表达式“a?b:c?d:e?f:g”的含义是“a?b:(c?d:(e?f:g))”;
在三元表达式中可以使用嵌套,但一般不会嵌套,因为阅读性不好,即使使用嵌套也会用括号分隔;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值