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分配的时间不知不觉就减少了,然而第十和十一 ...
随机推荐
- C#获取IP及MAC地址 方法
C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.I ...
- Java基础教程:多线程杂谈——Volatile
Java基础教程:多线程杂谈——Volatile 引入Volatile Java语言提供了一种稍弱的同步机制,即Volatile变量,用来确保将变量的更新操作通知到其他线程.当把变量声明为Volati ...
- adb(Andorid Debug Bridge)安装和使用
以下是adb工具包最新2017Google官方版下载地址: ADB和Fastboot for Windows https://dl.google.com/android/repository/plat ...
- docker 在 centos7.* 上的部署及问题解决
最近尝试搭建docker 环境,其实个人是比较喜欢“菜鸟学习系列”的知识的,怎奈它的讲解是以Ubuntu为主的,最后找到一个搭建学习系列,感觉写的很好,主要是页面风格清晰明了,遂决定按照此教程学习搭建 ...
- Configuring and Running Django + Celery in Docker Containers
Configuring and Running Django + Celery in Docker Containers Justyna Ilczuk Oct 25, 2016 0 Commen ...
- laravel 提交空字符串会被转成null解决方法
在app\Http\Kernel.php文件夹中,注释全局中间件: \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull:: ...
- eNSP下配置Trunk接口实现跨交换机传递数据
当Trunk端口发送数据帧的时候,当所发送帧的VLAN ID与端口的PVID不同是,检查是否允许该VLAN通过,若允许的话,直接透传,不允许就直接丢弃:当该帧的VLAN ID与端口的PVID相同时,则 ...
- Java注解-注解处理器、servlet3.0|乐字节
大家好,我是乐字节的小乐,上次给大家带来了Java注解-元数据.注解分类.内置注解和自定义注解|乐字节,这次接着往下讲注解处理器和servlet3.0 一.注解处理器 使用注解的过程中,很重要的一部分 ...
- Prometheus入门到放弃(1)之Prometheus安装部署
规划: IP 角色 版本 10.10.0.13 prometheus-server 2.10 10.10.0.11 node_exporter 0.18.1 10.10.0.12 node_expor ...
- zblog安装环境介绍?zblog安装需要什么环境
最近在群里看到很的多人有在问:“安装zblog需要什么环境?”,其实这个问题在zblog官网的程序下载页面有说明,但是不太详细,那么本文的目的就是来给大家介绍下zblog安装环境详细说明. zblog ...