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字符序列.例 ...
随机推荐
- Task 9 从用户界面和体验分析“360极速浏览器”
我目前使用的浏览器是360极速浏览器,下面将针对用户界面.记住用户选择.短期刺激.长期使用的好处坏处.不要让用户犯简单的错误四个方面对其进行评估: 1.用户界面: 01 可视性原则--网络没有连接或者 ...
- 使你的WebService可以远程调试点击“调用”
默认发布webservice时,只有在本机访问某个方法时可以点击调用,如果有参数时,也可以输入参数值,但是如果是远程访问时,点击进入一个服务时,是不显示“调用”和输入参数框的. 原来web.confi ...
- caffe with anaconda
https://blog.csdn.net/u013498583/article/details/74231058 https://www.cnblogs.com/youxin/p/4073703.h ...
- grunt入门讲解2:如何使用 Gruntfile 配置任务
Grunt的task配置都是在 Gruntfile 中的grunt.initConfig方法中指定的.此配置主要包括以任务名称命名的属性,和其他任意数据.一旦这些代表任意数据的属性与任务所需要的属性相 ...
- Nginx服务器搭建
http://blog.csdn.net/molingduzun123/article/details/51850925 http://tengine.taobao.org/book/index.ht ...
- exFAT移动硬盘写保护怎么去掉
cmd命令提示符下运行chkdsk命令: 比如在E盘,则输入的命令如下: E:(冒号不可少,输入后回车) CHKDSK /F /X (回车) 等命令执行完了,即可去掉exFAT移动硬盘写的保护.
- windows多线程(五) 互斥量 Mutex
一.互斥量 互斥量是windows的一个内核对象,互斥量与关键段的作用相似,可以用来确保全局资源的互斥访问.并且互斥量可以用在不同的进程中的线程互斥访问全局资源. 二.相关函数说明 使用互斥量Mute ...
- POJ1815_Friendship
一个无向图,问你删除多少点后,可以隔断起点到终点的所有路径?输出字典序最小的删点方案. 求最小点割,先拆点,容量为1,普通边容量无穷,最大流即为应删点数. 需要求出字典序最小的方案,可以从小到大枚举所 ...
- SPOJ NETADMIN_Smart Network Administrator
给一个图,某些点需要单独以某一种颜色的线连接到1点,问如何安排能够使得整个图颜色最多的一条路颜色最少. 显然,二分枚举然后加以颜色其实就是流量了,相当于对每条边限定一个当前二分的流量值,判断能否满流即 ...
- 快速配置java环境变量
右键单击计算机--->属性 点击 “高级系统设置”--->"环境变量",出现环境变量设置窗口 系统变量--->新建 JAVA_HOME变量,变量值填写jdk安装路 ...