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,其最小的程序单元是函数,每个函数都负责完成一个功能。程序的入口为主函数

程序设计三种基本结构:顺序结构+选择结构+循环结构

最新文章

  1. GitHub注册流程(中英对比)
  2. [云上天气预报-有时有闪电]2月3日23:00-4:00阿里云SLB升级期间网络会闪断
  3. 关于tableView的错误提示
  4. javaWeb项目中web.xml的xsd( XML Schemas Definition)文件
  5. URL锚点HTML定位技术机制
  6. [转] 引用 Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
  7. 关于Linux的缓存内存 Cache Memory详解<转>
  8. yo angualr-fullstatck 项目打包部署
  9. 飞翔(LIS变形)
  10. IOS开发-OC学习-MD5加密
  11. [leetcode-523-Continuous Subarray Sum]
  12. 分布式文件系统FastDFS动态扩容
  13. ng组件通讯的几种方式
  14. ssm框架找不到mysql驱动类WARN DriverManagerDataSource:107 - Could not load driverClass com.mysql.jdbc.Driver
  15. C# ThreadPool类(线程池)
  16. form-layui
  17. mysql数据库1
  18. Bootstraptable源码
  19. dos2unix命令
  20. Hive在集群环境配置

热门文章

  1. 14点睛Spring4.1-脚本编程
  2. vscode springboot logback 日志输出到不同文件
  3. kubernetes的几个概念
  4. 遨游TypeScript海洋之定义变量和数据类型
  5. 洛谷 题解 P2540 【斗地主增强版】
  6. MySQL(八)事务的隔离级别
  7. linux 加载新的磁盘(卷组)
  8. 转:如何正确彻底删除webpack 全局或是局部?
  9. 利用Python进行数据分析 第8章 数据规整:聚合、合并和重塑.md
  10. 04 IO流(二)——IO类的记忆方法、使用场景