java入门(一)
简介
java作为应用最广泛的编程语言之一,其优势在于···在于很多公司都在用它。本人学java无非是为了能够更好的找到工作,之前学过C,汇编,python,唯独没学过最流行的两种开发语言C++和java···。写博客是为了能够更好的记住自己学过的东西,并梳理清晰其中的脉络,最终达到真正的学以致用。
安装准备
安装java开发环境
https://www.bilibili.com/video/BV12J41137hu?p=17
安装Intellij IDEA。这是一款IDE,它和Pycharm均属于jetbrains公司,风格和Pycharm几乎一样。
https://www.bilibili.com/video/BV12J41137hu?p=20
基础语法
注释
单行注释://
多行注释:/* 开头,*/结尾
文档注释:/**开头,*/结尾
标识符和关键字
java共50个关键字和3个保留字(true、false、null)如下图所示
注:java严格区分大小写,关键字必须小写才有意义。
java中所有的类名、变量名以及方法名都被称为标识符。
- 所有的标识符都以字母,美元符$,下划线_开始。
- 首字母后可以使用字母,美元符$,下划线_或数字的任何字符组合。
- 大小写敏感
数据类型
java的数据类型分为两种:基本类型和引用类型
八大基本类型
byte、short(2B)、int(4B)、long(8B)、float(4B)、double(8B)、char(2B)、boolean(1bit)
注:定义long和float后面要加L和F
long a=200L;
float b=1.1F;
引用数据类型
类、接口、数组
拓展
int类型赋值前面可通过加字符改变进制,二进制0b、八进制0、十六进制0x。
int a=010;//a=8
浮点数类型在使用时可能会产生误差,这是由于float能够表示的范围有限,遇到较大数字时会遇到舍入误差,对精度有严格要求的情况下应使用BigDecimal库。
类型转换
java在运算中,不同数据类型的数据会先转化成同一类型载进行运算。数据类型优先级如下:
byte,short,char < int < long < float < double
从低到高为自动类型转换,无需额外操作;从高到低为强制类型转换,转换方法为*(转换后的数据类型)变量*
注:1. 强制类型转换可能出现内存溢出现象,导致结果错误
2.布尔类型不能转换
变量、常量、作用域
java中变量是程序中最基本的存储单元,包含变量类型,变量名和作用域。其中变量类型可以是基本类型也可以是引用类型,例如String。
(修饰符) 变量类型 变量名 = 值;
static float num = 1;
变量作用域包括三种:类变量(相当于静态变量)、实例变量(相当于全局变量)、局部变量
public class Variable{
static int allClicks = 0; //类变量:默认为0,null。布尔类型默认false
String str = "hello world"; //实例变量:同上
public void method(){
int i = 0; //局部变量:必须初始化
}
}
常量可以理解为一种特殊的变量,设定后不能更改,常量名一般用大写字符。
final 常量名 = 值;
final double PI = 3.14;
命名规范
类成员变量:首字母小写和驼峰原则:monthSalary
局部变量:首字母小写和驼峰原则:maxValue
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:GoodMan
方法名:首字母小写和驼峰原则:runRun()
运算符
java中的运算符和C中的没什么区别,用法也一样。
算术运算符:+,-,*,/,%,++,–
赋值运算符:=
关系运算符:<,>,<=,>=,==,!= instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,<<,>>,>>>(了解)
条件运算符:?:(x ? y : z x为真则为y,否则为z)
扩展运算符:+=,-=,*=,/=
包机制
为了更好的组织类,java 提供了包机制,用于区别类名的命名空间,语法为
package pkg1[. pkg2[. pkg3...]]
一般是小写字母+小圆点 com.公司名.项目名.业务模块名,例如:com.baidu.crm.user
java导入包和python相同,均使用import导入。(注:包名必须写在最开始)
java常用包:
- java.lang.* //基本包,默认引入
- Java.util.* //系统提供工具包,例如Scanner
- java.net.* //网络包,网络开发
- java.awt.* //界面开发,GUI
rt导入。(注:包名必须写在最开始)
java常用包:
- java.lang.* //基本包,默认引入
- Java.util.* //系统提供工具包,例如Scanner
- java.net.* //网络包,网络开发
- java.awt.* //界面开发,GUI