JAVA核心技术I---JAVA基本程序设计结构
2024-08-25 17:07:27
一:讨论一个简单的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。
“最新文章
- PSP个人项目耗时记录
- Mybatis之关联查询
- iptables之链之间的跳转
- linux命令执行返回值(附错误对照表)
- explicit构造函数
- Linux Kernel ‘write_tag_3_packet()’函数本地基于堆的缓冲区溢出漏洞
- 关于java中根据身份证求生日和年龄的问题
- poj1094 topsort
- 详解Objective-C的meta-class 分类: ios相关 ios技术 2015-03-07 15:41 51人阅读 评论(0) 收藏
- KBEngine简单RPG-Demo源码解析(1)
- Msys2配置总结
- ffmpeg批量实现视频转码命令行
- getPropertyValue 获取CSS样式
- 浅谈Kotlin(一):简介及Android Studio中配置
- Balanced Number 数位dp
- linux硬盘挂载-新硬盘挂载和扩容硬盘挂载
- rac 配置dg完成版
- tinyxml2使用
- UILabel的一些属性
- Socket 编程IO Multiplexing
热门文章