Java学习笔记——第2篇
Java程序的基本规则
Java程序的组织形式:纯粹的面向对象的程序设计语言,所以Java程序必须以类的形式存在,类是Java程序的最小程序单位,Java程序不允许可执行语句、方法等成分独立存在,所有的程序部分都必须放在类定义里。
要使用Java命令来解释某一个字节码文件,这个文件内必须有一个main方法,且main方法定义的写法固定为:
public static void main(String[] args)
对于一个大型的Java程序而言,往往只需要一个main入口,其他类都是被main方法直接或间接调用的。
Java源文件的扩展名必须是.java
如果Java源文件里定义了一个public类,则该源文件的主文件名必须与该public 类名相同。所以一个Java源文件内最多只能定义一个public类。
ps:一个Java源文件最好只定义一个类,不同的类使用不同的源文件定义,并且Java源文件命名采用类名。
然后最好把文件夹选项设置成如下:

一些初学者容易犯的错误:
①CLASSPATH环境变量:
在JDK1.5以上的版本中完全可以不用设置,如果设置了就一定要设置正确,因为设置了CLASSPATH 以后,Java解释器就只会在CLASSPATH所指定的路径中寻找Java类。并且

找不到类定义的错误一般就是由于CLASSPATH环境变量设置不正确造成的。
如果指定了CLASSPATH,一定要加“.”,来让Java解释器强行在当前路径下搜索Java类
②大小写问题:
Java语言严格区分大小写。Java程序中的关键字全部是小写,无须大写任何字母
③路径里包含空格的问题:
在安装JDK以及相关Java的程序,工具时不要安装在包含空格的路径下,常见“Program Files"就包含
④main方法的问题,写法一定要正确,且用java命令直接运行的Java类一定要有main方法(用public static 修饰)
Java程序中输出的两种方式:System.out.print()和System.out.println(),后者在输出结束后会换行。
JDK9新增的jshell工具
JDK9的一大改进就是提供了jashell工具,是一个REPL工具,该工具是一个交互式的命令行界面,可用于执行Java语言的变量声明、语句和表达式,并且可以立即看到执行结果。可以更方便测试代码。新增的jshell位于JDK安装目录的bin路径下。

Java9的Gl垃圾回收器
显式进行垃圾回收是比较困难的一件事。Java程序的内存分配和回收都是由JRE在后胎自动进行的。JRE会负责回收那些不再使用的内存(垃圾回收 GC),通常由JRE提供一个后台线程来进行检测和控制,一般在CPU空闲或内存不足时自动进行垃圾回收。
垃圾回收不仅会释放没用的对象,还可以清除内存记录碎片。
但是垃圾回收影响性能。
内存泄漏:如果一些分配出去的内存不及时回收,就会引起系统运行速度下降,甚至导致程序瘫痪。
垃圾回收的特点:
①工作目标是回收无用对象的内存空间,垃圾回收器只能回收内存资源,对其他物理资源,如数据库连接,磁盘I/O等资源则无能为力。
②将引用变量设置为null,可以暗示垃圾回收器可以回收该对象。
③垃圾回收发生的不可预知性,虽然程序员可以使用调用Runtime对象的gc()和System.gc()等方法来建议系统进行垃圾回收,但这种调用仅仅是建议,依然不能精确控制垃圾回收机制的执行。
④垃圾回收的精确性:能够精确的标记活着的对象。能够精确地定位对象之间的引用关系。
编写Java程序时的一个基本原则:对于不再需要的对象,不要引用他们,当系统可用内存越来越少时,垃圾回收执行的频率就会越来越高,从而导致系统的性能下降。

何时开始使用IDE工具
初学者不要使用IDE工具来学习Java编程。
只有当知道IDE工具里单击每一个菜单,单击每一个按钮,IDE工具在底层做的每一个细节时,才可以使用IDE工具。

练习:
搭建自己的Java开发环境
编写Java语言的HelloWorld
面向对象
主流开发方法:①结构化开发方法(面向功能(数据流)的程序设计方法)②面向对象开发方法(可以提供更好的可重用性、可扩展性、可维护性)
结构化程序设计:SA SD SP,其最小的程序单元是函数,每个函数都负责完成一个功能。程序的入口为主函数

程序设计三种基本结构:顺序结构+选择结构+循环结构
Java学习笔记——第2篇的更多相关文章
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- Java学习笔记——第3篇
面向对象 结构化程序的任何一个结构都具有唯一的入口和唯一的出口,并且程序不会出现死循环. 虽然Java是面向对象的,但Java的方法里则是一种结构化的程序流. 面向对象的基本思想:类.对象.继承.封装 ...
- Java学习笔记——第1篇
Java程序运行机制 Java程序要经过先编译,后解释两个步骤 编译型:高级语言源码 -->机器码(一次性) 生成可执行程序,脱离开发环境,在指定平台上运行.(C/C++/Objectiv ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
- 20145330第七周《Java学习笔记》
20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...
- 20145330第六周《Java学习笔记》
20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...
随机推荐
- 静态站点生成器-md-vue-vuepress
推荐指数:
- Java基础教程:垃圾回收
Java基础教程:垃圾回收 垃圾回收 垃圾回收(Garbage Collection,GC),顾名思义是释放垃圾占用的空间,防止内存泄漏.有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使 ...
- WPF ComboBox(转)
WPF ComboBox 创建一个ComboBox控件,并设置ComboBox控件的名称,高度,宽度.及设置ComboBox的垂直和水平对齐. <ComboBox Name="Comb ...
- 个人博客搭建全记录(Hexo,Github)
搭建过程主要借鉴小歪的博客 博客主题airclod Hexo,Github建站记录 1. 准备 Github账号 注册登陆Github 创建Repository,Repository Name就是Yo ...
- 稀疏数组(java实现)
1.稀疏数组 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 1.1记录数组一共有几行几列,有多少个不同的值 1.2把具有不同值的元素的行列 ...
- JUC之AbstractQueuedSynchronizer原理分析 - 独占/共享模式
1. 简介 AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作.AQS 是很多同步器的基础框架. R ...
- ant 节点和属性
任务和javac命令是相似,它编译两种类型的java文件1)没有被编译的java文件2)曾经编译过,但是class文件版本和当前对应的java文件版本不匹配的java文件. 1)javac命令支持的参 ...
- struts下载文件错误,想不明白为什么更改变量名就不报错了
java.lang.IllegalArgumentException: Can not find a java.io.InputStream with the name [is] in the inv ...
- QT http请求数据
1.创建一个请求类(HttpWork): HttpWork.h头文件 #pragma once #include <QObject> #include <QNetworkAccess ...
- c++ 编译 curl 报错 数组‘__curl_rule_01__’的大小为负 解决方法
背景:在原有的项目GCC编译环境下(arm-linux 32位),增加x86-linux 64位的编译环境,编译curl库的时候发生错误. 其他:编译服务器为64位Centos 编译错误提示 /inc ...