Java基础语法学习

 一、Java标识符

       标识符可从一个字母(Unicode编码字符集)、下划线_或美元符号$开始,随后也可跟数字、字母、下划线 或美元符号。 标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字 标识符不允许使用保留字。关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造 construct名, java语言中的保留字均用小写字母表示。

 二、变量

        变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分 例如int k=100;  其中int是数据类型,k是变量名 m 变量名称:在一个方法内部不允许出现多个同名称的变量 java要求见名知意,例如username。但是xm则不建议使用 变量类型: Java属于强类型编程语言,变量类型一旦声明,则不能进行修改 数据类型可以决定变量所需要的存储空间大小和对应的处理逻辑。

int k; 声明一个变量,类型为整形,变量名称为k

int k=100; 声明变量的同时进行初始化

k=12.345; 语法错误,因为已经声明了类型为整形,但是12.345不是整数

d=123; 语法错误,因为Java语法要求对于变量必须是先定义后使用

作用域是指变量的有效范围,一般是在所在花括号范围内。

三、JAVA是强类型语言

        每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的 Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的。

short k1=123;

int k2=k1;//没有错误

任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正过来。

String s1="123";//字符串类型

int k1=s1;//语法报错

在Java语言数据类型可以分为两大类:基本类型和引用类型。

四、基本类型(原生类型)

        基本类型是指不能再分解的数据类型,其数据在函数的调用中是以传值方式工作的。

        简单数据类型代表单值,而不是复杂的对象;

        Java是完全面向对象的,但简单数据类型却不是,它们类似于其他大多数非面向对象语言中的简单数据类型。这样做的原因是出于效率方面的考虑。在面向对象中引入简单数据类型不会对执行效率产生太多的影响。

        Java针对基本类型同时提供了对应的引用类型:包装类 Java编程语言有八个原始数据类型,可分为:4种整型(byte字节整、short短整、int整、long长整)、浮点数、字符型数据和布尔型数据,不会随着计算 机类型而变化的,注意Java具有平台无关性,所以不论硬件平台是什么,1B都是8位。

        java中的数据采用的是补码的存储方式;计算机中存储数据有3种不同的方式:原码、反码和补码。

        byte:1B(8b),-128到127;

        short:2B,-32768到32767;

        int:4B,-2147483648到2147483647;

        long:8B,-9223372036854775808到9223372036854775807。

如果需要使用具体的上下限取值,可以通过包装类中的常量进行使用。

浮点数类型

        float单精度、double双精度 float是4B,可以保证小数点后6位有效精度和第7位的部分精度 e38 double是8B,可以保证小数点后15位有效精度和第16位的部分精度。e308 浮点数是无法精确存放的,原因在于将浮点数转换为补码时的限制

double res = 0;

for (int i = 0; i < 10; i++)

        res += 0.1;

System.out.println(res); //0.9999999999999999

 Java精确计算问题

关键字strictfp是strict float point的缩写,指的是精确浮点,它是用来确保浮点数运算的准确性。

字符类型 

       Java中存放字符采用的是Unicode编码字符集,2B,0-65535 字符类型的变量可以当作整数使用 char c='a'; 注意:这里使用的是单引号,不是双引号,单引号中只能包含一个字符 需要记忆: '0' < 'A' <'a' Java也提供转义字符,以反斜杠(\)开头,将其后的字符转变为另外的含义

\ddd 1到3位8进制数所表示的字符(ddd) 例如'\110'实际就是字符H

\uxxxx 1到4位16进制数所表示的字符(xxxx),例如'\u9110'表示字符'鄐'

\’ 单引号字符,例如'\''

\" 双引号字符,例如'"'实际上是可以的,但是这样写可读性非常差,所以建议使用'\"'

\\ 反斜杠字符

布尔类型 

        boolean数据类型有两种文字值:true真和false假 在Java编程语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算

复合数据类型

        复合数据类型包括:class类、interface接口、数组。 null 索引在运行时并没有对应的类型,但它可以被转换为任何类型(不能是简单类型)。 索引类型的默认值就是null。

五、常量

        常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量 1.23,字符常量'A',布尔常量true等 。

六、表达式

        表达式就是运算符、操作数以及方法调用的序列,用来说明某个计算过程并返回计算结果. 按照运算符功 能来分,基本的运算符分包括算术运算符、关系运算符、位运算符、条件运算符等。

        算术运算符 +、-、*、/、%、++、--

        关系运算符 >、=、>、>>>。

        赋值运算符 =,+=,―=,*=,/=

        三目条件运算符(?:)规则是完全一致的,使用的形式是: x ? y:z;

1.算术运算符 +、-、*、/、%、++、--

        + 、- 、*、/ 整除:参与运算的双方都是整数 10/3=3而不是3.33333。

        % 求余(取模) 10%3=1实际就是10除以3求余数。

        i++是先获取i的值,然后再对i加1。

        ++i是先对i加1,然后再获取i的值。

2.关系运算符 >、=、<=、==、!=

        用于判断两个数据之间的大小关系,计算结果为boolean,如成立返回为true,否则为false。

        ==和=的区别:

                k=100;这是赋值运算符,意思是将=右边的计算结果储存在=左边的变量中;

                k==100;这是比较计算符,意思是判断k是否值为100;如果是则返回true,否则false。

        !=意思是判断是否不等于,表示如果相等时返回false,否则返回true。

3.赋值运算符 =,+=,-=,*=,/=,%=

        int k=100; 含义是将100赋值存储在k对应的存储单元中 k=k+3可以简写为k+=3 -= */ /=类似

4.三目运算符

        三目条件运算符(?:)规则是完全一致的,使用的形式是: x ? y:z;

        表达式1必须返回值为boolean类型

        表达式2和表达式3的返回值类型一致

int k=100;

int m=99;

int res=k>100?m++:++m;

System.out.println(res); //100 k>100不成立,则执行++m和表达式2:m++无关,不会执行。

System.out.println(m); //100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值