目录
JAVA基础语法及流程控制 (1/2)
前言
hello 大家好,牛牛今天主要分享一下自己在学习Java基础语法及流程控制的知识。一方面分享给大家,作为一个技术教程类的文章;另一方面也是作为自己学习笔记。
希望能对大家在学Java的路上有帮助!
一、关于JAVA的一些了解性内容
java的特性和优势
- 简洁有效
- 高可移植性
- 面向对象—>封装、继承、多态
- 解释型与编译型的折中
- 提供了对内存的自动管理
- 取消了C++中的多重继承
- 取消使用指针!(我们都曾被指针折磨过)
java的三大版本
- JAVA SE
它是JAVA的标准版,是整个JAVA的基础和核心,这是我们主要学习的一个部分,也是JAVAEE和JAVAME技术的基础,主要用于开发桌面应用程序。学会后可以做一些简单的桌面应用如:扫雷,连连看等。主要是PC端。
- JAVA ME
它是JAVA的移动版本,主要应用于嵌入式开发,比如手机程序的开发。
- JAVA EE
也叫JAVA的企业版,它主要是面向企业级应用开发的。应用于服务器的比较多,偏想WEB开发,其基础就是JAVA SE,故而我们一定要重视JAVA SE。
JDK和JRE和JVM
JDK : Java Development Kit
Java开发者工具,是java的开发环境,主要是开发人员需要配置的,既可以运行Java程序,也可以开发Java程序。主要包含JRE,Java的开发工具和Java的基础类库。
JRE : Java Runtime Environment
Java运行环境,是面向程序使用者的,只能运行Java程序,不能开发。主要包含JVM和Java核心类库。
JVM : Java Virtual Machine
Java虚拟机是JRE的一部分。它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。
JDK和JRE和JVM之间的关系
二、基础语法
注释
注释在程序中不执行,是给我们写代码的人看的。书写注释有利于长时间之后我们查看项目代码。书写注释是一个很好的习惯哟!
单行注释
// 这是一条注释
多行注释
/*
这是一条注释
!
*/
文档注释
/**
* 这是文档注释
*/
标识符
1. 不可以用关键字做标识符
2. 标识符要以字母,美元符$,下划线_开始,首字符之后可以是 字母, 美元符 $,下划线_,或者数字组合
3. 合法举例:age,&salary,_value,__1_value…
4. 非法举例:123abc,-salary,#abc…
5. 可以使用中文名,但是不建议,也不建议用拼音。
6. JAVA是大小写敏感的语言,故而大小写不同的同一组字符串,在程序中是不同的
关键字
关键字是有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
数据类型
JAVA是强类型语言。所谓强类型语言,就是
所有变量 先定义后使用,若不修改,则保持原有数据类型
。比如:C语言,C++等等。 对应的还有弱类型语言,就是可以不符合规定,随便玩
。比如Javascript等等。
在Java中有两类数据类型:基础数据类型,引用数据类型。
基础数据类型:byte ,short ,int ,long ,float ,double ,char ,boolean (true,false)
引用数据类型:类 class,接口 interface, 数组 array…
//整形
byte num1 = 127;
// byte b = 128;
// byte b =-129; -128~127
short num2 = 12321;
int num3 = 1231231232;
long num4 = 1111111111132131232L;//注意long类型后面要加 L;
//浮点型
float num5 = 12.3F;//注意float类型后面要加 F;
double num6 = 3.141592653589793284626431;
//字符
char word1 = 'l';
char word2 = '牛';
//字符串,String不是关键字,类
//String name ="六道牛牛";
//布尔类型
boolean flag_t = true;
boolean flag_f = false;
注意long类型后面要加 L
注意float类型后面要加 F
拓展知识
这部分是扩展知识,可以选择性观看
代码实例:
//整数拓展: 进制 二进制0b, 十进制 , 八进制0 十六进制0x
int i = 10;
int i8 = 010;
int i16 = 0x10;
int i2 = 0b10;
System.out.println("十进制 = "+i);
System.out.println("八进制 = "+i8);
System.out.println("十六进制 = "+i16);//0~9,A~F
System.out.println("二进制 = "+i2);
System.out.println("-----------------------------------------");
运行结果:
代码实例:
//浮点数拓展: 银行业务表示问题 ------>BigDecimal 数学工具类
//float 精度有限 离散的 摄入误差 接近但不等于(下面情况出现的原因)
//double
//最好完全避免使用浮点数进行比较
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d); //f和d应该是相等的,布尔值却是false
System.out.println(f);
System.out.println(d);
float f1 = 1231231232131f;
float f2 = f1+1;
System.out.println(f1==f2);//f1,f2应该相差1,布尔值却是true
System.out.println("-------------------------");
运行结果:
代码实例:
//字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制类型转换
System.out.println(c2);
System.out.println((int)c2);
//所有的字符本质都是数字
//编码 Unicode 2字节 65536 excel 2的16次 = 65536;
//Unicode 表 (97 = a ,65 = A)
//U0000 , UFFFF;
char c3 = '\u0061';
System.out.println(c3);
运行结果:
代码实例:
//布尔值扩展
//以下内容等效
boolean flag =true;
if(flag == true){
System.out.println("牛牛最帅");
}
if(flag){
System.out.println("牛牛最帅");
}
运行结果:
类型转换
不同类型的数据先转换为同类型,在进行运算
//强制类型转换 ---->(类型)变量名 高 --> 低
//自动转换 低到高
//容量等级(小->大) : byte,short,char<int<long<float<double
注意点:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换为低容量的时候,强制类型转换
4. 转换的时候可能出现内存溢出或者精度问题!
代码实例:
//不同类型的数据先转换为同类型,在进行运算
int i = 128;
int j = 127;
byte b =(byte)i;//内存溢出
byte c = (byte)j;
System.out.println(i);
System.out.println(b);
System.out.println(c);
运行结果:
代码实例:
//int 转 char实例
char ch ='a';
int d = ch+1;
System.out.println(d);
System.out.println((char)d);
运行结果:
代码实例:
public static void matters(){
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total1 = money*years;
long total2 = money*years;//计算之前已经存在问题了
long total3 = money*((long)years);//想把一个数转换为long,在运算的时候自动提升
long total4 = (long)(money*years);//整体强转没作用,计算之前已经存在问题了
System.out.println(total1);//精度溢出
System.out.println(total2);
System.out.println(total3);
System.out.println(total4);
double e = Math.pow(2,3);//数学工具类
System.out.println(e);
}
运行结果:
小结
以上是Java入门必备的知识,后续还有一部分,敬请期待喔!
点这里查看更多JAVA学习源码
您的点赞和关注,是对牛牛最大的鼓励喔~~~