目录
2浮点float (四字节 单精度 只能表示八位有效数字) double(八字节 双精度 精度是float的两倍)
IDE的使用
IDE(集成开发环境,开发工具总称)
Java常用开发工具:idea,eclipse
注释
对代码功能的解释
//单行注释(ctrl+/ )
/**/多行注释 (ctrl + shift+/)
/** */文档注释,用于类,方法,变量进行说明,鼠标放上去会有提示
关键字
关键字的定义和特点
定义:语言中被赋予特定含义的单词,用来修饰某些内容(类,方法,变量)特点:小写
保留字:const goto (Java中未正式定义为关键字,但是还不能在Java中使用的单词,后期可能被定义为关键字)
标识符
Java中对各种变量,方法和类等要素命名时使用的字符序列。自己可以命名的名称
命名规则:
1.语法强制规范
标识符由36个英文字母大小写,数字,__,$组成
数字不可打头,不能是关键字和保留字,可以 包含关键字
区分大小写
长度无限制
标识符不能含有空格
2.约定俗成
见名知意
包名小写
类名首字母大写,多单词组成(XxxYyy),为了区分类名与变量名
变量名和方法名:首字母小写,多单词时,首字母小写,其余字母大写xxxYyyZzz
常量:全部大写 多单词用__连接MAX__VALUE PI
java变量
程序运行中可以改变的量
首先声明变量 申请内存空间,然后在使用前必须赋值
声明语法 数据类型 变量名1 变量名2
Java 数据类型
一.基本类型(8个关键字声明的)
1整数 byte short int long
byte a=123;
short b=12345;
int c=1000000;
long d=7897897897L;//Java中整数字面量默认是int类,一般声明Long类型时,在字面量后加L
*0b开头的数为二进制,0x开头的数为十六进制,0开头的数为八进制
2浮点float (四字节 单精度 只能表示八位有效数字) double(八字节 双精度 精度是float的两倍)
float e=1.22f;//Java中浮点数字面量默认为double类型,声明float类型,需要在字面量后加f/F
double f=3.4444;
BigDecimal用于精确小数计算
3字符char
//Java中char类型只能表示一个字符,大小为2字节,可以表示任意一个字符
//char类型可以进行算数运算,在运算时,用的是该字符在编码表中对应的十进制编号运算
char a='a';
System.out.printfln(a+0);
//结果为97+0=97
char g='a'; char m=‘王’ ; //单引号,只能表示一个字符 想表示字符串需用String
4布尔值(逻辑值true false)boolem
//Java中不能用0/非0 表示 真/假
boolem j=true;
boolem k=false;
二.引用类型(String)
//String 是Java中提供的一个类,用String类来表示一种类型
String s="abcd";//底层储存c语言一致,都是采用数组储存多个字符
Unicode编码
Unicode: 一种编码,将世界上所有的符号都纳入其中。兼容了ASCII码的一部分。每个字符都有一个唯一的 Unicode 编号,这个编号一般写成 16 进制,在前面加上U+.Java底层采用unicode编码来存储字符
//将两数字一起打印
int a=10;
int b=5;
System.out.println("变量a:"+a+"\t变量b:"+b);
本数据类型转换(除去bollean外七种)
●8种基本数据类型
● 转换分为
默认转换:小容量转大容量类型
byte a=12;
int b=a;
long c=b;
float d=c;
double e=c;
char f='a'//97
强制转换:大容量类型转小容量类型
//(可能会出现问题1.溢出 2.精度降低)
int x=258;
byte y=(byte)x;
System.out.println(y);
//结果为2,超出的值被砍去
flout a=10.55f;
int b=(int)a;
System.out.println(b);
//结果为10,精度降低
运算符
●算数运算符
+:1.加法运算(数值加数值)2.连接(数值+字符串 字符串+字符串)3.正号
-: 1.减法2.负号
*/%
++ 自增1
--自减1
int a=-10;
int b=5;
char c='a';
String d="abcd";
//打印 a+d得到的是字符串
int e=5;
e++;//先运算
++e;//先自增
●比较(或关系运算符)
== ,!=:用于数值与数值间比较 还可以用布尔型之间 还可以用于引用类型之间
,>,<,>=,<=数字间比较
●逻辑运算符
&:逻辑与
&&:逻辑与(短路与)
int a=10;
int b=5;
int c=1;
//& 遇到false后还执行后面表达式
System.out.println(a>b & b>c);//true & true=true
System.out.println(a>b & b<c);//true & false=false
System.out.println(a=b & b<c);//false & false=false
——————————————————————————————————————
//&& 遇到false后不执行后面表达式,效率更高
System.out.println(a>b && b>c);//true & true=true
System.out.println(a>b && b<c);//true & false=false
System.out.println(a=b && b<c);//false
|:逻辑或
||:逻辑或(短路或)
int x=10;
int y=5;
int z=1;
//| 遇到true后还执行后面表达式
System.out.println(x>y | y>z);//true
System.out.println(x>y | ++y<z);//true
System.out.println(x>y | y<z);//false
_______________________________________
//||遇到true后不执行后面表达式,效率更高
System.out.println(x>y || y>z);//true
System.out.println(x>y || ++y<z);//true
System.out.println(x>y || y<z);//false
!:逻辑非(取反)
^:逻辑异或 (相同为假,不同为真)
●赋值运算符
=,赋值时,注意左右两边的数据类型要一致,不同时要遵循数据类型转换规则
●位(比特位)运算符
<<左移 左移1位相当于*2
1>>右移 右移1位相当于/2(正数补0,负数补1)
1>>>无符号右移 不带符号的移位 高位移动后,默认补0
int a=2;//0010
a=a<<2;//0100
&与
int a=3;//0000 0011
int b=4;//0000 0100
a&b;//0000 0000
|或
int a=3;//0000 0011
int b=4;//0000 0100
a|b=7;//0000 0111
^异或
int a=3;//0000 0011
int b=4;//0000 0100
int c=7;//0000 0111
~非
int a=3;//0000 0011
~a= -4;//1111 1100
与或非可以进行逻辑运算也可以进行位运算int a=2;//0010
a=a<<2;//0100
●条件运算符
语法:
(条件表达式)?表达式1:表达式2;
int a=60;
String result (a >= 60)?"及格":"不及格";
System.out.println(result);
控制台输入
import java.util.Scanner;
public class hello {
public static void main(String[] args) Scanner scanner= new Scanner(System.in);
System.out.println("请输入姓名");
String name = scanner.next();
System.out.println("请输入年龄");
int age = scanner.nextInt();
System.out.println("姓名"+name+"\t年龄"+age);
}
}
IF语句
if(条件表达式,最终返回一个布尔值){ }else{ }
if(条件表达式,最终返回一个布尔值){ }else if(条件表达式,最终返回一个布尔值){ }
switch语句
switch(表达式){
case value1:代码块[break];
case value1:代码块[break];
case value1:代码块[break];
default:默认代码块;
}
若没有break,则继续下一个case语句(case穿透性)
switch可以实现的功能,if都可以实现
switch和if都能实现的功能,建议用switc,效率比if else 高
//switch基本语法
int week=3;
switch(week){
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
case 4:
System.out.println(4);
break;
default:
System.out.println("error");
}
循环
while
变量初始化
while(条件表达式){
循环体
迭代部分
}
int a=0;
while(a<5){
System.out.println(a);
a++;
}
while(true){//死循环
System.out.println(1);
}
do/while
do{
System.out.println("请输入一个整数1");
Scanner scanner =new Scanner(System.in);
a=scanner.next.Int();
}while(a==10)
for循环
for (int i=0;u<5;i++){
System.out.println(i);
}
for(;;){//死循环
System.out.println(1);
}
break&continue
循环嵌套
在内层循环中,结束外层循环,需要在想要结束的循环前添加一个标签
Java中的方法
java中的方法类似其他语言的函数,将完成某一个功能的代码进行封装,为他命名,可重复调用,减少代码冗余
Java里的方法不能独立存在,所有方方法必须定义在类里。
// java入口 固定格式
public class hello{
public static void mnue(){
System.out.println("--------家庭收支记账软件--------");
System.out.println(" 1.收入明细 ");
System.out.println(" 2.登记收入 ");
System.out.println(" 3.登记支出 ");
System.out.println(" 4.退 出 ");
System.out.println(" 请选择1至4 ");
}
hello.mnue();//调用方法
}
方法定义:
public 访问权限
static 静态的 直接可以使用类名调用
void 表示方法没有返回值
() 参数列表
{} 方法体
Java语言中使用下述形式调用方法:
类名/对象名.方法名(实参列表)实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配
return 语句终止方法的运行并指定要返回的数据[return语句return语句用于从当前执行的方法中退出,返回到调用该方法的语句处继续执行有两种格式return 值; //将值返回,方法必须声明有返回值return;//不返回任何值,表示终止方法执行,可以在声明为void的方法中使用