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分配的时间不知不觉就减少了,然而第十和十一 ...
随机推荐
- centos/Fedora/RHEL 安全设置
centos/Fedora/RHEL • 整改方法: • 验证检查: 1.查看/etc/login.defs,访谈询问当前所设置的密码长度及更换周期: 2.查看/etc/pam.d ...
- RF之条件判断、初始化清除-4
条件判断: rf中用run keyword if 关键字做条件判断,以此来达到类似在python中if ...else...条件判断的功能. 注意:ELSE IF一定都是大写的,不然运行 ...
- 知识点-Spark小节
Spark处理字符串日期的max和min的方式Spark处理数据存储到Hive的方式Spark处理新增列的方式map和udf.functionsSpark处理行转列pivot的使用Python 3.5 ...
- Error:(18, 51) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
问题:主要是因为jdk版本不一样 解决: 方法一:List<String> list=new ArrayList<Stirng>(); 方法二:重新安装jdk8的版本(安装和配 ...
- JAVA操作word方法
jacob,功能非常强大,能操作word,excel和pdf.下载地址是:http://sourceforge.net/projects/jacob-project/ 1.新建一个文档 Dispat ...
- tracert详解
1tracert作用 是用于探索源地址到目标地址当中所经过的路线.而每到达一个点,就会向源地址返回一个信号.例如A要访问D,那么当中经过B,再经过C.当经过B时,会向A返回一个信号,当经过C时,再向A ...
- 洛谷 题解 UVA12661 【有趣的赛车比赛 Funny Car Racing】
[题意] 在一个赛车比赛中,赛道有\(n(n<=300)\)个交叉点和\(m(m<=50000)\)条单向道路.有趣的是,每条道路都是周期性关闭的.每条道路用5个整数\(u,v,a,b,t ...
- 6.2.3 reginst中的yzm
@RequestMapping("/reginst/{yzm}") public Object reginst(User user,@PathVariable String yzm ...
- [Oracle] - 使用 DBMS_UTILITY 查看异常详情
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE说明:这是在Oracle 10g数据库引入的,DBMS_UTILITY.FORMAT_ERROR_BACKTRACE内置函数返回一 ...
- c++ 编译 curl 报错 数组‘__curl_rule_01__’的大小为负 解决方法
背景:在原有的项目GCC编译环境下(arm-linux 32位),增加x86-linux 64位的编译环境,编译curl库的时候发生错误. 其他:编译服务器为64位Centos 编译错误提示 /inc ...