JAVA核心技术I---JAVA基本程序设计结构
一:讨论一个简单的Java程序
package hello;
public class Hello {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("We will not use 'Hello World'!");
}
}
注意:
(0)命名统一
源代码的文件名必须与公共类的名字相同
(1)关键字class
关键字class表明Java程序全部内容都包含在类中,这里,只需要将类作为一个加载程序逻辑的容器,程序逻辑定义了程序的行为
(2)命名方法
采用驼峰命名法"ClassName"
(3)main方法
Java语言规范:main方法必须声明public,不过当main不是public时,某些Java解释器依旧可以执行,这是一个不予理会的bug
(4)编译执行
编译:javac 文件名.java ---->类名.class
执行:java 类名(无后缀) ----->注意:可能我们需要到父级目录进行调用 java hello.Hello
(5)println方法
将一个文本行输入到控制台,输出后换行
其实在System.out中也有print方法,不过不会自动换行
(6)注释(同C)
// 行注释
/**/ 段注释
二:基本数据类型
Java是一种强类型语言,不同于Python脚本语言,和C/C++一样必须对每一个变量声明一种类型。其一共有8中基本类型:
4种整型
2种浮点类型
1种表示Unicode编码字符单元的字符类型char
1种表示真值的布尔类型
补充:
Java有一个可以表示任意精度的算术包,通常称为“大数值”,但是不是一种java类型,而是一个java对象
(一)整型

与C/C++不同,java中类型大小五目标平台无关
而且java中没有任何无符号形式的int,long,short,byte类型
(二)浮点型

溢出和出错情况下的三个特殊浮点数值:
正无穷
负无穷
NaN
(三)字符型
Java中,char类型用UTF-16编码描述一个代码单元

(四)布尔类型
true和false
三:变量
(一)变量声明定义
逐一声明每个变量可以很好提高程序可读性 int i,j;不出错,但是不提倡
在java中变量的声明可以放在任何地方,尽量放在靠近变量第一次使用的地方
不同于C/C++,在java中不区分变量的声明和定义
C/C++中
int i = ; 是定义
extern int i; 是声明
(二)常量final
关键字final表示该变量只能被赋值一次,之后不允许修改,一般常量全用大写
final double CM_PER_INCH = 2.54
public static final double CM_PER_INCH = 2.54 声明类常量
在C/C++中使用const作为常量定义。const是java的保留字
四:类型转换
小转大,无丢失,大转小可能出现丢失数据,同大小,类型不同转换有可能有丢失

强制转换
(cast)强制转换
double x = 9.997
int nx = (int)x nx-->9将小数部分截断
注意:强制转换可能会将数值严重丢失精度
五:枚举类型(是一个类)
enum Size {
SMALL,
MEDIUM,
LARGE,
EXTRA_LARGE
};
public class Hello {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Size s = Size.SMALL;
System.out.println(s);
}
}
六:字符串
Java没有内置字符串类型,但是在标准类库中提供了一个预定义类String。每个用双引号括起来的字符串都是一个String实例
String e = "dafaw";
拼接:
.使用+号
.使用join进行路径拼接
String.join("/","C:","pro")--->C:/pro
java不能对字符串直接操作修改
同python一样对于字符串使用常量方式存储,虽然每次都需要创建一个新的字符串才行,但是原来的字符串,可以被编译器实现字符串共享,可以提高效率。
将各种字符串存放在公共存储池中。字符串变量指向存储池中的相应位置。如果复制一个字符串变量,原始字符串与复制字符串共享相同的字符
而且,java设计者认为共享带来的高效率远远高于提取,拼接字符串。一般程序中,很少需要修改字符串,而是往往需要对字符串进行比较
会自动进行内存回收
注意:只有字符串常量是共享的,对于使用+拼接的字符串或者substring等操作产生的结果并不是共享的。只有对于共享的字符串常量,才可以使用==运算符进行检测是否相等
String h = "Hello";
if(h == "Hello") {
System.out.println("equal h"); #可以输出
} if((h+"b")=="Hellob") {
System.out.println("equal hb"); #不可以输出
}
if(h.substring(,)=="Hel") {
System.out.println("equal hs"); #不可以输出
}
空串和Null串
空串有自己的长度0和内容""
if(str.length() == )
if(str.equals(""))
null表示该变量没有和任何对象关联
if(str==null)
码点和代码单元
代码点(Code Point)和代码单元(Code Unit)
char 码点和代码单元
代码点(Code Point):Unicode是属于编码字符集(CCS)的范围。
Unicode所做的事情就是将我们需要表示的字符表中的每个字符映射成一个数字,这个数字被称为相应字符的码点(code point)。
例如“严”字在Unicode中对应的码点是U+0x4E25。
“JAVA核心技术I---JAVA基本程序设计结构的更多相关文章
- java核心技术学习笔记之三程序设计结构
一 基本数据结构 必须包括在类中 必须具备 public static main方法 大小写敏感 二.数据类型 四种整数类型: Int 4字节 short 2字节 long8字节 byte1字节 二种 ...
- java核心技术学习笔记之一程序设计概述
Java 核心技术之一程序设计概述 一. Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...
- Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述
第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库 如果想要有奇特的绘 ...
- Java核心技术第八章——泛型程序设计(1)
1.泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.例如:不希望为了聚集String和Integer对象分别设计不同的类.(个人觉得此处说的聚集译为:创建一个对象,属性可以为 ...
- java核心技术学习笔记之一程序设计环境
一术语 JDK:Java Delelpment Jit JRE:Java Runtime Environment 二.安装jdk1.8.0_25 设置环境变量(建议直接安装在C盘下),使用:隔开 C: ...
- java核心技术卷一
java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128- ...
- Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记
第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...
- Java核心技术卷阅读随笔--第3章【Java 的基本程序设计结构】
Java 的基本程序设计结构 现在, 假定已经成功地安装了 JDK,并且能够运行第 2 章中给出的示例程序.我们从现在开始将介绍 Java 应用程序设计.本章主要介绍程序设计的基本概念(如数据类型.分 ...
- Java核心技术-Java的基本程序设计结构
1.一个简单的Java应用程序 public class FirstSample { public static void main(String[] args) { System.out.pring ...
- 重新学习Java——Java基本的程序设计结构(二)
上一节简单回顾了Java基本的一些程序设计的知识,这一节将继续根据<Java核心技术>这本书,进行这方面知识的复习与探索. 1. 字符串 Java字符串实际上就是Unicode字符序列.例 ...
随机推荐
- 《找出1到正整数N中出现1的次数》
<找出1到正整数N中出现1的次数> 编程思想:依次求出正整数每个位数上出现1的次数,累加即可得到最后想要的结果:而每一位上出现1的个数与和它相邻的其它位数上的数字有关系(以此位置上的数为对 ...
- 51单片机数组的定义方法(code与data的作用)
转自:http://blog.sina.com.cn/s/blog_94994f7b01010s1h.html 数组前不加“code”或“data”,则默认将数组存放在程序存储器中:code 指定数据 ...
- printf in KEIL C51
转自:http://blog.csdn.net/it1988888/article/details/8821713 在keil中printf默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化 ...
- 深入理解JAVA集合系列一:HashMap源码解读
初认HashMap 基于哈希表(即散列表)的Map接口的实现,此实现提供所有可选的映射操作,并允许使用null值和null键. HashMap继承于AbstractMap,实现了Map.Cloneab ...
- Alpha冲刺阶段博客汇总
第一篇(冲刺前安排):http://www.cnblogs.com/Aragaki-Yui/p/8893752.html 第二篇(冲刺第一天):http://www.cnblogs.com/Araga ...
- Delphi 获取Ip地址的方法总结
通过注册表获取或修改Ip 想到Windows会把系统网卡相关信息存入注册表,肯定可通过注册表读取具体ip信息.大致思路是找HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W ...
- QtCreator源码分析—2.启动主程序(4篇)
QtCreator采用插件体系结构.主程序启动插件管理器(PluginManager),再通过插件管理器加载其插件,QtCreator的所有功能均使用插件实现. 我们先来分析主程序对插件管理器的主要操 ...
- Construct BST from given preorder traversal
Given preorder traversal of a binary search tree, construct the BST. For example, if the given trave ...
- java 每一个对象都是根据hashCode区别的 每次返回不同的内存地址
可以通过hashCode比较对象,hashCode如果重写的话 返回的内存地址是一样的 则不能创建对象
- Introduction to One-class Support Vector Machines
Traditionally, many classification problems try to solve the two or multi-class situation. The goal ...