【有书共读(第1期)】《明解Java》笔记:第1章
官方小结:
- Java编程语言拥有众多优点,支持面向对象编程。自从发布以来,随着其不断修订,使用者也越来越多。
- Java程序的开发需要免费的Java开发工具包,即JDK。
- 源程序是作为“字符序列”创建的。保存源程序的源文件的名称是类名加上.java扩展名。
- 源文件不能直接运行。使用javac命令编译后,会创建一个扩展名为.class的类文件。类文件的内容为字节码。
- java命令用于运行类文件中的类。
- 源程序的结构是类声明中包含main方法,main方法中包含语句。
- 运行程序后,main方法中的语句会被依次执行。
- 原则上语句的末尾是分号。
- 在画面上进行输出时程序会使用标准输出流。标准输出流的字符输出使用System.out.print和System.out.println方法来执行。后一个方法在输出结束时会自动换行。
- 表示字符序列的是字符串常量,其格式是用双引号将字符序列括起来。加号可以将字符串常量拼接起来。
- 转义字符\n表示换行符
- 源程序中应该简单明了地写上需要传达给包括编程者自身在内的程序阅读者的注释。注释的写法分为传统的注释、文档化注释、单行注释三种。
- 源程序中允许自由格式的记述。程序中应使用制表符或空格符进行适当的缩进,方便阅读。
狗尾续貂by Finersoft。
关于java
java的发展历程
- 诞生原因:sun公司想针对其公司的消费电子设备(例如微波炉、遥控器等)设计一种与硬件、平台无关的语言(这个原因现在成了现实,但是不是在消费电器上,是在电脑上)。
- 发展历程:(划线的是影响较大的版本)
- JDK1.0,1996,主要是提供了虚拟机和Applet等技术(上文提过随着互联网兴起的发展背景,这些都和浏览器有关),那时的虚拟机实现主要是纯解释型的。
- JDK1.1,1997,像Jar、JDBC、RMI和Reflection这个时候都有了,相信做Java的基本都离不开这些。
- JDK1.2,代号PlayGround,1999。这个得好好说说,有个大变化。Java平台被细化为三个大的发展方向,为桌面基本应用、为企业级站点、为移动手持设备分别服务,即为StandardEdition、EnterpriseEdition和MicroEdition,通常说的JavaSE、JavaEE和JavaME,因为是在这个2.0的时候,所以也有称呼方式为J2SE等。对于开发者来说,至少API不同了。这个时候有了JSP,而且我们现在还在用的Hotspot实现(JIT融入),这时候已经出来了,集合类大家用的也很多吧。
- JDK1.3,代号Kestrel,2000。实时、CLDC、MIDP、CDC规范发布。
- JDK1.4,代号Merlin,2002 。这个使Java走向成熟。NIO等主要的东西就是在这个时候出现的,WebService也大行其道。
- JavaSE5,Project Tiger,2004 。主要是语言易用性的改进,如foreach相关的和@annotation等,还有就是JUC(java.util.concurrent),这个包里的东西你会看到since 1.5 。
- 2006年的JavaSE6,更需要关注的是,开源了,还有就是不叫J2xE了,改成JavaxE了。
- 2011,Java7,此时Java已经进入Oracle的时代了,G1回收机制是一个新点,而且Hotspot和JRockit必然走向统一。
- 2014,Java8, Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
- 2017,Java9,2017-03-23发布,重点在Jigsaw、工具、HTTP API和语言细节几个方面。
java的特点
- 免费使用
- 一次编写,到处运行——方便开发、部署、分享
- C语言风格语法结构 ——方便阅读,容易上手
- 强类型——编译期检查 、减少出错的可能
- 面向对象编程——支持封装、继承、多态等面向对象技术,方便高效开发高品质的软件。
- 大量的库——基础API丰富,生态环境良好。
- 使用垃圾回收进行内存管理——专注算法实现。
- 异常处理——提高程序健壮性
- 并发处理——人机交互更加友好。
- 使用包对类进行分类——能够高效管理数量庞大的类。
相关名词
- 操作系统:人和电脑硬件的交流渠道,又是各种软件的运行环境。
- 应用程序:能够在电脑上运行的文件(集)
- 文本编辑器:用于字符编辑的工具,常用于编辑代码等普通文本。
- 代码:由人针对某个场景而编写的符合一定语法规则的文本,保存在文本文件(源文件)中,可以经开发工具转成应用程序(二进制文件)或其他方法翻译成二进制指令交给计算机(或相关环境)执行。
- jdk(java development kit,java开发工具包):这个软件是Sun Microsystems对于Java所开发的产品,是用于构建应用程序,applet程序和运用Java编程言语的组成部分。现如今JDK已经成为运用最广泛的Java SDK。JDK是整个Java的核心,包含了Java运行环境,Java工具和Java基础的类库。
- jvm(java virtual machine,java虚拟机):java运行环境中的执行部分,因为有了jvm,java才可以运行。
- JRE(java runtime enviroment,java运行环境):jvm+支持的类库,有了jre,java才可以跨平台。
- java源文件:保存java(类)代码的文件,用java类名称做文件名,用.java做后缀。
- java类文件(字节码文件):java经过开发工具编译后,生成的中间文件,可由Jvm翻译成二进制指令交给硬件执行。
Java程序编写
java工程结构
如下图所示,普通java工程就是没有webroot
java文件结构:
- 第一行:包名(全小写)
- 下面可跟若干导入包语句
- 类定义{ //类名称首字母大写的驼峰式
- 常量定义 //全部字母大写,单词之间下划线连接
- 类中成员定义 //首字母小写的驼峰式
- 类中方法定义 //首字母小写的驼峰式
- main方法:java桌面(控制台)程序的入口程序
- }
- 说明:每一句语句以分号结尾
package com.finersoft.chap01;
//此处可有一些导包语句,如import java.io.File;
/** * 名称:在画面上进行输出的程序 * 说明: * @author Finersoft * @date 2018年3月21日 */ public class Abc {
/** * 主方法 * @param args 命令行传入参数 */ public static void main(String[] args) { System.out.print("ABC"); System.out.print("DEF" + "GHI"); System.out.println("JKL\nXYZ"); //下面是一些思考题 by finersoft String a = "ABC"; String b = "DEFGHI"; String c = new String ("JKL\nXYZ"); System.out.println(" a == \"ABC\":"+(a=="ABC")); System.out.println(" b == \"DEF\"+\\\"GHI\\\":"+(b=="DEF" + "GHI")); System.out.println(" c == \"JKL\\nXYZ\":"+(c=="JKL\nXYZ")); System.out.println(" \"JKL\\nXYZ\".equals(c):"+("JKL\nXYZ".equals(c))); } }
Java程序编译执行
- 在命令行(Linux和苹果机的终端)下,切换到java源文件路径
- 编译一个java源文件,javac 文件名.java (要带后缀.java)
- 运行一个java类,java 类名 (不要带后缀.class)
javac Abc.java↵
java Abc
java注释
注释分类:
- 传统注释:
-
/* 注释↵ 可换行↵ */
- 单行注释:
-
// 注释内容,如:定义一个字符串变量a,将其初始化为空字符串常量 String a = "";
- 文档注释:
-
/** * 代码文档说明↵ * 补充说明↵ * @author 作者↵ * 等其他注释 */
注释作用:
- 文档注释:生成api文档给外部人员使用
- 单行注释、传统注释:给以后要看到这段代码的人看,了解这段代码的背景和作用
- 错误用法:一行一个注释、优化代码时用注释临时去掉写得不好的代码却忘记了
Java流
- Java程序使用流(stream)与控制台画面等外部进行输入、输出。
- System.out是标准输出流
字符串
- 用双引号包围的一串文本
- 可以通过加号进行连接
- 可以通过System.out标准输出流输出到屏幕等。
写得不好,谢谢你看到这儿,祝你每天都进步,工作生活步步高。