java入门总结
01-简单了解和认识
一、语言特点和运行机制
特点:相当于c/c++简单一点、面向对象性、跨平台性
运行机制:java是先编译后解释运行
二、程序入口—main—主函数
public static void main(String[] args){
输出语言
}
在idea里书写psvm和main都是能快捷输入main方法
三、编码规范(养成良好习惯)
- 良好的格式习惯
- 良好的标识符命名习惯:标识符只能以数字、字母、下划线(_)、$ 组成,但是不能以数字开头。严格区分大小写
- 变量名、函数名建议驼峰命名,常量名全部大写(PI),类名每一个单词的首字母大写
- 良好的注释习惯://单行注释、/*多行注释 */、
02-变量、数据类型和类型转换
一、变量(了解理解)
一、变量概念:计算中一块内存空间,数据的基本存储单位。(简单理解为一个容器,是存储数据的容器)
二、组成:数据类型、变量名、值(数据)。
三、变量定义方式
1、
①声明变量:数据类型+变量名;
②变量赋值:变量名 = 值
int num;
num = 10;
2、
声明和赋值:数据类型+变量名 = 值;
int num = 10;
3、
同时声明多个相同数据类型的变量:数据类型+变量名1 = 值,变量名2, = 值;
int num1 = 10,num2 = 20;
二、数据类型(了解理解)
数值类型:byte、short、int、long、float、double
字符类型:char
布尔类型:boolean
对象数据类型: 类、数组、接口、集合等(以String为例)
1、数值类型
byte b1 = 120;
short s1 = 30000;
int i1 = 2147483646;
long l1 = 214748364611111L;
float f1 = 1.11F;
double d1 = 1.1111111;
long定义值的后面要加L/l,建议L
float也是定义值后面要加F/f,建议F
2、字符类型
char c1 = 'A';
char c2 = '罗';//用char定义中文会编译成AR码
char c3 = 65;// 以整数的形式进行存储,AR码会编译成相应的字符
3、布尔类型
boolean b1 = true;//只有true和false
4、对象数据类型
String s1 = "我是cojob!";//字符串
三、类型转换(应用重点)
1、自动转换
当小数据类型的变量赋值给大数据类型的变量时,发生自动类型提升。
byte->short -> int -> long -> float - > double
(从数据的存储范围来判定数据的大小类型)
byte b1 = 120;//小数据类型的变量
short s1 = b1;//大数据类型的变量
//成功转换
short s2 = 120;//大数据类型的变量
byte b2 = s2;//小数据类型的变量
//编译错误!!!
同理:byte->short -> int -> long -> float - > double
2、强制类型转换
使用场景:当大数据类型的变量赋值小数据类型的变量时,需要使用强制类型转换。就如上面编译错误的场景。
语法
大数据类型 大数据类型的变量名= 值;
小数据类型 变量名 = (小数据类型)大数据类型的变量名;
short s2 = 120;
byte b2 = (byte) s2;
注意!强制类型转换数值精度有时候会损失精度,数值合理则不损失
double d = 12.12;
int in = (int)d;//结果为12
int inti = 12;
byte b = (byte)inti;//结果为12
3、表达式的类型转换
表达式:由变量、字面值、运算符等组成一个式子,通常会产生一个结果(1+1=2)
注意!!当两个数值或是变量参与运算时,如果参与运算的两个变量或是数据类型不一致,运算过程中,会发生类型转换
byte b;
b = 1;
b = (byte) (b +1);
byte b1 = 1,b2 = 2,b3;
b3 = (byte) (b1 + b2);
原因:byte运算先变成int,再计算,因为他们最终是要转向int类型,而int类型的值不能赋值给byte。byte,char,short编译时都是需要转成int,才可运算。(double、float、long能运算,是”大于“int的大数据类型)
四、运算符(认识基础)
1、算术赋值运算符
“+” ”-“ “*” “ /” “%”(取余数)
= (赋值)、+=(自加)、 -=、 *=、 /= 、%=
int i = 10;
i +=5;//结果为15
2、布尔表达式
<、>、<=、>=、==(等于)、!=(不等于)
布尔表达式返回值true/false
int i1 = 10;
int i2 = 20;
System.out.println(i1>i2);//false
3、逻辑运算符
&&:与,两个条件都为 true,则结果才为true
||:或,两个条件有一个true,结果就为true
! :非,对结果取反
//&&
int i1 = 10;
int i2 = 20;
if(i1>10&&i2>10){
System.out.println("成立");
}else{
System.out.println("不成立");
}
//结果是:不成立
//||
int i1 = 10;
int i2 = 20;
if(i1>10||i2>10){
System.out.println("成立");
}else{
System.out.println("不成立");
}
//结果是:成立
//!
int i1 = 10;
if(!(i1>10)){
System.out.println("成立");
}else{
System.out.println("不成立");
}
//结果是:成立