自从前几天的面试被Java经理鉴定为Java入门级水平之后,打算好好学一遍Java。因为基础有一些,预计速度应该还可以。今天刚到Java开发实战经典书,在这记录下每天的学习体会以及注意点(多针对于自己的不足)。愿与光同学互相监督,共同进步!
今天看的是前三章。
第一章:Java概述及环境搭建
1、几个Java语言重要的特性。
(一)适合分布式计算,也是我补强Java的重要目的。因为Java具有强大的、易于使用的联网能力,所以非常适合开发分布式计算的程序。
(二)可移植性或者说是中性结构。java编译器生成的是一种中性的对象文件格式,与任何计算机体系统无关的中性的字节码。jvm再读取并处理这个字节码文件(.class文件)。Java解释器再将jvm的代码在特定的平台运行。这也是其中一个和c、c++不同的地方。
2、关于jvm
jvm是java虚拟机,通俗点,其实就是个软件,jdk里带的。
jdk包含jre,jre包含jvm。
不同平台配置的jdk不同,比如windows和linux。
所以跨平台的是class文件,它能够在各种平台运行。
配环境变量是为了开发时候可以调用这个软件,java程序都运行在这个里面。(以后会研究jvm的优化等等问题)。
3、其他
面试时问到了Java和c、c++之间的区别(从语法以及外部机制等等)。先做小部分的总结,后续更新。
(一)Java不依赖平台(可移植性),c依赖;
(二)与c不同,在实例化数组的时候(new),可以指定大小。例:float [] boy = new float[5];
(三)与c、c++不同,Java在申明数组的时候不能指定大小。例:int c[12];
(四)Java具有垃圾收集机制,会自动释放不被引用实体的内存。而c++需要时刻检查哪些对象应该释放内存。C主要是提倡用户控制内存的释放和获取;
(五)Java是基于c++开发的,但他省略了c++中所有难以理解、容易混淆的特性,如头文件、指针、结构、单元、运算符重载和虚拟基础类等。
第二章:简单的Java程序
System.out是指标准输出,也就是通常与计算机借口设备有关的,如打印机、显示器等。
第三章:Java基本程序设计
1.数据分类
分为基本数据类型和引用数据类型两种。引用数据类型要说的一点是,它是以一种特殊的方式指向变量的实体,机制类似于c++的指针(Java中已删除)
2、整数类型
long、int、short、byte
说一个较用的不多的。byte,属于整型,比short更小,-128~127。8位。
integer:整型的包装类。多用于字符串与整型的转换。
3、浮点型
默认是double,后面加D或者d加以识别,但可有可无。float后加F或者f,不然会默认为是double型,编译时可能会发生错误。
4、数据转换
任何数据类型都能像String转换。
System.out.println中的连接+号,实际上是字符串连接的含义。
5、逻辑运算符
值得注意的一点是,&&和&(短路与和非短路与)、||和|(短路或和非短路或)的区别。
首先有一条规律:对于与操作来说,只要第一个条件为假,不管后面条件如何都为假。
对于或操作来说,只要第一个条件为真,不管后面条件如何都为真。
所以对于短路与来说,如果第一个条件判断为假,后面的条件将不判断。
对于短路或来说,如果第一个条件判断为真,后面的也不判断。
所以开发中大部分用的都是短路与和短路或。(虽然学过,但已经忘了)
6、运算符
其他的不多说,说下三目运算符。变量=条件判断?表达式1:表达式2(如果条件成立,则执行1否则2),相当于一个if-else语句
7、选择结构
switch语句选择值只能是字符或者常量、枚举(印象非常深,当时有碰到一直在纠结)
8、循环结构
break直接跳出整个循环结构
continue停止本次循环,直接进入下一次循环。相当于中断了一次循环。