1、变量
1.标识符
在编写Java程序的过程当中,须要咱们本身命名的东西,这些东西就是标识符。
标识符的组成
1).0到9数字
2).26个英文大小写字母
3).特殊符号:下划线(_)、美圆符号($)、人民币符号(¥)
定义合法的标识符
1).数字不能做为开头
2).严格区分大小写
3).不可使用关键字
4).定义时,尽可能达到见名知其意
2.关键字
关键字是被Java语言赋予特殊含义,具备专门用途的单词,能够这样理解,就如同咱们注册商标是,关键字已经被人注册过了,不能再继续使用。
关键字官方网站:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
Java中全部关键字都是小写
Java中共有50个关键字以及3个(true、false、null)不属于关键字的标识符
3.Java中的命名规则html
针对Java当中的不一样内容,在标识符的基础上,为这些内容命名还要符合如下规定,可是这些规定是不受语法约束的java
1).包名:全部字母都小写,当有多个单词链接时,使用“.”链接,例如:aaa.bbb.ccc编程
2).类名/接口名:全部单词首字母大写,例如AaaBbbCcc(知足驼峰命名规则,这种称之为大驼峰)数组
3).变量名/方法名:第一单词首字母小写,其余单词首字母大写,例如aaaBbbCcc(知足驼峰命名规则,这种称之为小驼峰)oracle
4).常量名:全部字母都大写,有多个单词组成时,使用_链接,例如AAA_BBB_CCC工具
5).全部的命名在同一个做用范围内不能重名学习
4.常量网站
常量,是指在程序运行过程当中值不会发生变化的标识符3d
定义常量的语法:htm
final 数据类型 常量名称=值;或者
final 数据类型 常量名称;
常量名称=值
须要注意的是,常量的值只能赋一次值.。
常量分类
1).整数常量--全部整数
2).小数常量--全部的小数
3).布尔型常量--较为特殊,只有两个值true、false
4).字符常量--将一个数字字母或者符号用单引号( ' ' )标识
5).字符串常量--将一个或者多个字符用双引号(“ ”)标识
6).null常量--只有一个数组就是null
5.变量
变量,顾名思义,就是在程序运行过程当中值会发生变化的标识符,它至关于有名字的容器,这个容器用于装载不一样类型的数据。它的做用是用来记录数值的变化,而后展现给用户。
1).声明变量
声明变量也叫定义变量,声明变量是为了使用最简洁的代码实现功能
声明变量的格式
第一种:先声明后赋值
格式:数据类型 变量名;
变量名=值;
第二种:声明赋值同步进行
格式:数据类型 变量名=值;
变量的声明实质是是开辟一块新的内存,而赋值就是对这块新开辟的内存分配空间大小
例如,声明一个整型变量a,它首先是开辟一块名字为a的空间,当为a赋值时候,例如a=12;则是为这块为a的内存分配大小为12的空间
2).变量的做用域
变量只有在它的做用域内才能够被使用,当超出这个做用范围,若是还须要使用这个变量就必须从新声明。
2、数据类型
Java语言是一门强类型语言,对于每一种数据都定义了明确的具体数据类型,根据内存存储位置的不一样,分为两种数据类型即基本数据类型和引用数据类型
1.基本数据类型
在Java中基本数据类型共有8种,在基本数据类型中又能够分为三大类:数值型、字符型、布尔型
1).数值型
(1).整数类型--存储整数:字节类型(byte)、短整型(short)、整型(int)、长整型(long)
(2).浮点类型--存储小数:float(单精度浮点型)、double(双精度浮点型)
在数值型中须要注意的几个地方
(1).整数类型默认的是int类型,定义长整型时,当赋的值超出int的取值范围,必须在数值后面加上L或者l,若是没有超出,则可加可不加
(2).浮点类型默认的是double类型,在定义单精度浮点数时,必须在数值后面加F或者f
(3).能够为一个浮点数赋值一个整数的值
2).字符类型
(1).字符类型用于存储单一字符,使用char表示
(2).每一个chai类型的字符变量占2个字节
(3).在赋值时必定要用英文半角的单引号(‘’)括起来,例如‘a’
(4).能够赋值为一个0到65535之间的整数,计算机会根据ASCII表转换为对应的字符,例如97对应的字符是‘a’
(5).一些特殊的字符
--\r:表示回车
--\n:表示换行
--\t:表示制表符
--\b:表示退格
3).布尔类型
布尔类型变量用来存储布尔(真假)值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。其只占用一个字节。
4).各数据类型的详解
2.数值类型的转换
在Java编程中,经常涉及到数据类型的转换,目前主要讲基本数据类型中数值类型转换,包括自动类型(隐式)转换,另外一种是强制类型(显式)转换。
在前面讲数据类型的时候,咱们提到了各数据类型的取值范围从小到大依次:
(byte、short、byte)-->int-->long-->float-->double
在基本数据类型中,boolean类型占一个字节,因为其自己所表明的特殊含义,它不与其余类型进行转换
1).自动类型转换
从取值范围小向取值范围大转换,这种转换方式叫作自动类型转换,也叫隐式转换,它不须要作任何的说明。
例如:byte b=14;int a=b;运行不会报错
注意:
(1).byte类型能够自动转换为short,int,long,float,double,可是不能直接转换为char,这是由于byte的取值范围是(-128,127),char的取值范围是[0,65535],这两个范围比较大小没法做比较。
(2).short类型能够自动转换为int,long,float,double,可是不能直接转换为char。
2).强制类型转换
从取值范围较大想取值范围较小的转换,这种转换方式叫作强制类型转换,也叫显式转换,转换过程当中须要作说明
例如:int a=13;byte b=a;若是是这样会报错,须要修改成byte b=(byte)a;在a前面说明转换后的数据类型是byte
注意:在byte或short与char做转换时,都须要作强制声明
即:short s=12;char c=(char)s;byte b=11;char x=(char)b;
char c=97;short s=(short)c;char cc=96;byte b=(byte)cc;
3).表达式类型自动提高
表达式提高是指由变量和运算符组成的一个算式,变量在进行运算时,会发生自动类型转换,自动提高到它默认的类型
例如:byte b1=3;byte b2=4;byte b3=b1+b2;运行时会报错,这是由于在这里byte b3=b1+b2在运算时会自动把b1+b2的结果转换为int类型,会变成有int类型转换为byte类型,是属于强制类型转换
所以修改成byte b3=(byte)b1+b2;
3.引用数据类型的简单介绍
引用数据类型主要包括类、接口、数组,这里主要讲String这个类简单的声明和使用
String是声明字符串的数据类型,它是引用数据类型,当在声明时,与基本数据类型一致,在赋值是须要使用“”把值括起来,或者直接赋值为null
其余数据类型能够转换我字符串,转换的方式:直接在其余数据类型后面加上“”;
例如:int a=11;String s=a+“”;它会把int类型a转换为String类型
3、进制数之间的转换
1.十进制数与二进制数之间的转换
1).十进制转二进制
将这个十进制数一直除以2获得余数,直到商为0时,将所获得的余数倒序从左往右排列
将十进制数6转换为二进制数为110
原码: ·就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其他位表示数值的大小。
反码:正数的反码与其原码相同;负数的反码是对其原码除符号位外逐位取反。
补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。 ·计算机的全部数据运算是经过补码来实现的。
2).二进制转十进制
将这个二进制数上的数从右往左乘以2的次方(从0次方开始)
将二进制数0110 0100转换成十进制数获得的结果为100
2.十进制数与八进制数之间的转换
1).十进制转八进制
与十进制转二进制同样,就是将十进制数一直除以8取余数,直到商为0时,将余数倒序从左往右排列,获得转换结果
2).八进制转十进制
与二进制转十进制同样,就是将八进制数上的每一位,从有往左乘以8的次方(次方从0开始)
例如:将八进制数0226转换成十进制数
==>6*8^0+2*8^1+2*8^2=6+16+128=150
3.其余进制数之间的转换
1).十六进制与十进制之间的转换--与二进制与十进制之间的转换同样
2).二进制与八进制之间的转换
--1.二进制转八进制:首先将二进制数从右往左每三个看作一个总体(取三合一),不足三个的在前添0;其次是对每三个一组的总体转换成十进制数;将每一组所获得的结果合在一块儿就是二进制转成八进制的结果
例如:将二进制数10010110转成八进制数
首先:取三合一: 10 010 110 ;不足三个的左边添0 --> 010 010 110
其次:对每三个一组转成十进制数:第一组结果是1*2^1=2;第二组结果是:1*2^1=2;第三组结果是:1*2^1+1*2^2=2+4=6
所以这个二进制转成八进制的结果为226。为了与十进制数区分,在左边添0,结果为0226。
验证一下:
从前面知道,八进制数0226转成十进制数结果为150,咱们看一下这个二进制数转换成十进制数的结果:1*2^1+1*2^2+1*2^4+1*2^7=2+4+16+128=150。结果也是150
--2.八进制转二进制:八进制数经过除2取余法,获得二进制数,对每一个八进制为3个二进制,不足时在最左边补零。
例如:将八进制数0226转换成二进制数
首先:对八进制数上的每个数字看作是十进制数,将其转换成二进制数,二进制数不足三个在左边添0,
所以最后的结果:10010110(最左边的0能够省略的)
更多进制数之间的转换,请参考:https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
4、键盘输入Scanner
在进行Java编程时,常常会遇到须要键盘输入,这个时候就须要用到Scanner。
Scanner是专门用于键盘输入的,是已经别人已经写好了,咱们直接使用它就能够。咱们在使用的时候,总结起来四步:
第一步:导包,导包的目的是为了告诉程序,须要使用到Scanner这个键盘输入工具类,在代码首行输入:import java.util.Scanner;或者import java.util.*;前者表示导入java.util包中的Scanner这个类,后者表示导入这个包中的全部类
第二步:声明Scanner类型的变量(学习完面向对象以后这里实际上是建立对象),即:Scanner Scanner的变量名=new Scanner(System.in);这里的Scanner变量名是任意命名的,只要 知足Java命名规则
第三步:提示输入:System.out.println(”请输入“);
第四步:声明变量接收输入的内容。这里须要注意的是,目前咱们为已经学习了8种基本数据类型,外加一种引用数据类型,并且每一种数据类型接收的方式都不同
1.当接收的内容为byte类型时:首先声明一个byte类型的变量,而后把键盘输入的内容赋值给到这个变量
即:byte 变量名=Scanner变量名.nextByte();
2.当接收的内容为short类型时。首先声明一个short类型的变量,而后把键盘输入的内容赋值给到这个变量
即:short 变量名=Scanner变量名.nextShort();
3.int、long、float、double、boolean同样的原理,只是在接收的时候,使用Scanner变量名.nextXX时,这里的XX是指接收数据类型的名字,首字母大写便可
4.当接收的内容为String时,一样声明一个String类型的变量接收,而后把键盘输入的内容赋值给这个变量
即:String 变量名=Scanner变量名.next();
5.当接收的内容是char时,首先也是声明一个char类型的变量,而后吧键盘输入的内容赋值给这个变量
在此以前咱们先来观察字符串与字符之间的关系,能够这样理解,字符串是由字符组成,字符串能够一个一个的分割成字符,例如字符串”abcd“,它是由‘a’、‘b’、‘c’、‘d’四个字符组成,在这个字符串abcd中,a是第一个字符,下标为0,b是第二个字符,下标为1......
所以,在接收char类型时,是接收键盘输入的字符串,而后取的是输入字符串的第一个字符,所以它对应的下标应该是0。
即:char 变量名=Scanner变量名.next().charAt(0);