JAVASE基础回顾总结(一)

来源:互联网 发布:网页源码看不懂 编辑:程序博客网 时间:2024/05/16 11:29

    即将要迎来大学很重要的一个环节:实训啦,自己从JAVA SE到JavaWeb到JAVAEE已经接触了一遍,包括也学了几个框架,使用ssh开发了几个小项目…,但是实训选方向的时候毫不犹豫选择了JAVA EE这个方向,自己始终相信还会有很多东西去学习、体会。我觉得第一次学习主要弄清楚:需要学一些什么东西?学习路线是什么?以及怎么样学习?…这次实训,我仍然会认真努力对待,但是会站在另一个角度去体会它,结合自己的平时项目的锻炼然后映射到理论知识上去体会。希望自己会有不同的收获。燕姐,加油加油加油!

JAVASE基础回顾总结(一)

1.JDK、JRE、JVM作用及关系
(1)JVM:(Java Virtual Machine)实现了java程序的跨平台,但是JVM不是跨平台的,不同的操作系统需要安装不同的JVM;
(2)JRE:(Java Runtime Environment)Java运行环境,JVM+核心类库,如果运行开发好的java程序,只需安装JRE即可;
(3)JDK:(Java Development Kit )Java开发工具包,JRE+java开发工具(编译工具(javac.exe) 打包工具(jar.exe)等,.exe应用程序也是用java写的,为了方便,打包成了.exe文件);
(4)简单而言:使用JDK开发完的java程序,交给JRE运行,通过JVM实现了跨平台;

2.编译:javac后面跟的是文件名和扩展名; 执行:java后面跟的是类名不加扩展名;

3.java关键字:被java语言赋予特定含义的单词;关键字字母全是小写;goto、const作为保留字存在;(main不是关键字)

4.java标识符:就是给类、接口、变量、方法等起名字时使用的字符序列;
(1)建议组成:大小写字母、数字、$、_(也可以使用中文,但不建议)
(2)不能以数字开头;不能是java关键字;区分大小写;
(3)命名规则:
包:实际上就是文件夹;为了区分相同的类名;全部小写;
常量:多个单词时:每个字母大写、用_隔开:STUDENT_MAX_NAME

5.main方法是主方法,是程序的入口,即程序要想运行必须有main方法,它是被JVM调用;

6.单行注释可嵌套,多行注释不可嵌套;

7一个数据类型和转换相关的面试题练习:

/*    面试题:下面那句话编译失败呢?        byte a = 3,b =4 ,c;        c = a + b;        c = 2 +5 ;*/class DataType{    public static void main(String args[]){        byte a = 3,b =4 ,c;        //c =  a + b;//编译错误: 错误: 可能损失精度,因为变量计算时:先会看类型问题,最终把结果赋值时也会考虑类型问题;a、b先类型提升为int再计算;        int d =  a + b;//正确        c = 2 +5 ;//正确:常量:先把结果计算出来,然后看是否在byte的范围内,如果在就不报错;    }}

对DataType.java编译生成的DataType.class文件使用反编译工具Xjad反编译后的java代码如下:

// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.// Jad home page: http://kpdus.tripod.com/jad.html// Decompiler options: packimports(3) fieldsfirst ansi space // Source File Name:   DataType.javaclass DataType{    DataType()    {    }    public static void main(String args[])    {        byte byte0 = 3;        byte byte1 = 4;        int i = byte0 + byte1;        byte byte2 = 7;    }}

8.字符串连接符相关面试题:

这里写图片描述

9.数据类型的转换:
(1)boolean类型不参与转换;
(2)自动转换:(小到大)byte、short、char ==> int ==> long ==> float ==> double(注意:long8字节到float4字节自动转是因为:底层存储结构不同;long表示的范围比float大)
(3)byte、short、char之间不转换,计算的时候直接转换成int类型;
(4)强制转换:大到小,可能会有精度损失;

10.java语言中的字符可以存储一个汉字,因为java中的字符占两个字节;java采用的是unicode编码;