day04-Java基础语法

打印 上一主题 下一主题

主题 783|帖子 783|积分 2349

Java基础语法

1.注释

注释不会被执行,是用来给写代码的人看的。
1.1单行注释

单行注释只能注释一行文字
  1. //  注释
复制代码
1.2多行注释

多行注释可以注释多行文字
  1. /*  注释<br>    注释<br>    注释<br>*/
复制代码
1.3文档注释

JavaDoc:文档注释

  1. /**<br> * @Description HelloWrold<br> * @Author liyuelian<br> */
复制代码
 
2.标识符和关键字

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
2.1关键字

1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while
2)2个保留字(现在没用以后可能用到作为关键字):goto、const
3)3个特殊直接量:true、false、null
2.2标识符注意点


  • 所有的标识符都要以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始;
  • 首字符之后可以是字母(A-Z或者a-z)、美元符($)、下划线(_)或者数字的四种字符任何组合;
  • 不能使用关键字作为变量名或者方法名;
  • 标识符大小写敏感;
  • 可以使用中文命名,但是不建议使用;

     
 
3.数据类型

强类型语言:(C、C++、Java等)
要求变量的使用严格符合规定,所有变量必须先定义之后才能使用。
弱类型语言:(VB、JS等)
可以先使用后定义。
Java的数据类型分为两大类:

  • 1. 基本数据类型


  • 2. 引用数据类型
类、接口、数组....
3.1基本数据类型

基本数据类型(primitive Type)包括四大类八小种
1、整数型
  1.    byte <br>    short <br>    int <br>    long
复制代码
2、浮点型
  1.     float<br>    double
复制代码
3、布尔型
  1.     boolean
复制代码
4、字符型
  1.     char
复制代码
字符串String属于引用类,不是关键字
3.2引用数据类型

Reference Type


  • 接口
  • 数组
     
3.2什么是字节?


  • 位(bit):是计算机内部数据存储的最小单位,1bit表示一位,如1011 0010是一个八位二进制数。


  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。


  • 1B(byte,字节)=8b(bit,位)


  • 字符:是指计算机中使用的字母、数字、字和符号。
 
4.数据类型拓展以及面试题讲解

4.1整数拓展

进制:二进制(0b)、八进制(0)、十进制、十六进制(0x)
  1. public class Hello {<br>    public static void main(String[] args) {<br>        int i=0b10;//二进制0b<br>        int i1=10;<br>        int i2=010;//八进制0<br>        int i3=0x10;//十六进制0x<br>        System.out.println(i);<br>        System.out.println(i1);<br>        System.out.println(i2);<br>        System.out.println(i3);<br>    }<br>}
复制代码
运行结果:
  1. ​<br>2<br>10<br>8<br>16<br>    <br>Process finished with exit code 0
复制代码
4.2浮点数拓展

例子1 银行业务怎么表示钱
  1. public class Hello {<br>    public static void main(String[] args) {<br>        //浮点数拓展? 银行怎么表示 钱<br>        //例子1<br>        float f = 0.1f;//0.1<br>        double d=1.0/10;//0.1<br>        System.out.println(f==d);//false<br>​<br>        float d1=292929292828282f;<br>        float d2=d1+1;<br>        System.out.println(d1==d2);//true<br>        <br>    }<br>}
复制代码
运行结果:
  1. false<br>true
复制代码
原因:浮点数的位数是有限的,离散的,但是某些运算的结果可能会有无限位小数。浮点数一般会存在舍入误差,接近但不等于实际数值。因此最好完全避免使用浮点数进行比较。
那么银行业务怎么表示钱?
答案是使用数学工具类BigDecimal
4.3字符拓展
  1. public class Hello {<br>    public static void main(String[] args) {<br>       char c1='a';<br>       char c2='中';<br>​<br>        System.out.println(c1);<br>        System.out.println((int)c1);//强制转换<br>​<br>        System.out.println(c2);<br>        System.out.println((int)c2);//强制转换<br>    }<br>}
复制代码
运行结果:
  1. a<br>97<br>中<br>20013
复制代码
原因:所有的字符本质还是数字--->涉及到编码问题 Unicode
unicode 表:
97 代表 a
65 代表 A
Unicode编码范围从U0000~UFFFF(0~65535)
 
转义字符
转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。简单来说就是在一些字符前加 “\” 使它具有其他意义。
4.4布尔值拓展
  1. public class Hello {<br>    public static void main(String[] args) {<br>       boolean flag=true;<br>       if(flag==true){}<br>       if(flag){}//与上一行功能一致,默认为true<br>    }<br>}
复制代码
5.类型转换

八种数据类型占用空间大小:
类型描述基本数据类型占用空间大小[字节]取值范围默认值字节型byte1-128~1270短整型short2-32768~327680整型int4-2^31~2^31-10长整型long8-2^63~2^63-10单精度浮点型float43.4e-45~1.4e380.0f双精度浮点型double84.9e-324~1.8e3080.0d字符型char20~65535'\u0000'布尔型boolean1true/falsefalse*关于默认值:成员变量没有手动赋值,系统会默认赋值,局部变量则不会。八种数字类型的默认值是一切向0看齐。
由于Java是强类型语言,所以进行有些运算时需要用到类型转换
低 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > 高
byte < short / char < int < long < float < double
小数优先,因此虽然float的字节数比long小,但long转换成float仍是自动类型转换。
运算中,不同类型的数据先转化为同一类型,然后进行运算。
 
5.1强制类型转换

大容量转换成小容量,叫做强制类型转换(高—>低)
例子
  1. public class Hello {<br>    public static void main(String[] args) {<br>      int i=128;<br>      byte b=(byte)128;//内存溢出<br>        //强制转换   (类型)变量名 <br>       <br>        System.out.println(i);<br>        System.out.println(b);<br>    }<br>}
复制代码
运行结果:
  1. 128<br>-128
复制代码
5.2自动类型转换

小容量向大容量转换,称为自动类型转换(低—>高)
例子
  1. public class Hello {<br>    public static void main(String[] args) {<br>      int i=128;<br>      double b=i;<br>​<br>        //强制转换   (类型)变量名<br>        System.out.println(i);<br>        System.out.println(b);<br>    }<br>}
复制代码
运行结果:
  1. 128<br>128.0
复制代码
int转成long类型,由低到高,因此会自动转换。
注意点:

  • 不能对布尔类型进行转换
  • 不能把对象类型转换为不相干的类型
  • 再把高容量转换成低容量时需要强制转换
  • 转换时可能存在内存溢出或者精度问题

  1. public class Hello {<br>    public static void main(String[] args) {<br>        System.out.println((int)23.7);//23,默认向0取整<br>        System.out.println((int)-45.89f);//-45,默认向0取整<br>    }<br>}
复制代码
  1. public class Hello {<br>    public static void main(String[] args) {<br>        char c='a';<br>        int d=c+1;<br>        System.out.println(d);//98,自动转换<br>        System.out.println((char)d);//b,强制转换<br>    }<br>}
复制代码
  1. public class Hello {<br>    public static void main(String[] args) {<br>        //操作比较大的数时,注意溢出问题<br>        //JDK7新特性,数字之间可以用下划线分割<br>        int money =10_0000_0000;<br>        System.out.println(money);//输出为1000000000<br>​<br>        int years=20;<br>        int total=money*years;<br>        System.out.println(total);//-1474836480,溢出<br>​<br>        long total2=money*years;//-1474836480<br>        //在赋值给total2之前,由于money和years都是int型,<br>        // 那么相乘所得的结果也是int类型,已经出现溢出问题,<br>        // 因此赋值之前的值已经为-1474836480,所以这里的结果也是-1474836480<br>​<br>        long total3=money*(long)years;//先把一个数转换为long<br>        System.out.println(total3);//结果是 20000000000<br>    }<br>}
复制代码
 
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表