java se程序设计_JavaSE--Java 的基本程序设计结构

Java 对大小写敏感

Java 中定义类名的规则很宽松。名字必须以字母开头,后面可以跟字母和数字的任意组合。长度基本上没有限制。但是不能使用 Java 保留字作为类名。

标准的命名规范为:类名是以大写字母开头的名词。如果名字由多个单词组成,每个单词的第一个字母都应该大写。

源代码的文件名必须与公共类的名字相同,并用 .java 作为扩展名。

如果 main 方法正常退出,那么 Java 应用程序的退出代码为 0,表示成功地运行了程序。如果希望在终止程序时返回其他的代码,那就需要调用 System.exit 方法。

与大多数程序设计语言一样,Java 中的注释也不会出现在可执行程序中。因此,可以在源程序中根据需要添加任意多的注释,而不必担心可执行代码会膨胀。

在 Java 中,有三种写注释的方式。最常用额是使用 //,其注释内容从 // 开始到本行结尾。当需要长篇注释时,既可以在每行的注视前面标记 //,也可以使用 /* 和 */ 将一段比较长的注释括起来。在 Java 中,这种注释不能嵌套。第三种注释可以用来自动地生成文档。这种注释以 /** 开始,以 */ 结束。

Java 是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在 Java 中,一共有 8 种基本类型,其中有 4 种整型、2种浮点类型、1种用于表示 Unicode 编码的字符单元的字符类型 char 和 1 种用于表示真值的 boolean 类型。

整型用于表示没有小数部分的数值,它允许是负数。Java 提供了 4 种整型。

类型

存储需求

取值范围

int

4 byte

-2147483648 ~ 2147483647 ( -2^31 ~ (2^31)-1 )

short

2 byte

-32768 ~ 32767 ( -2^15 ~ (2^15)-1 )

long

8 byte

-9223372036854775808 ~ 9223372036854775807 ( -2^63 ~ (2^63)-1 )

byte

1 byte

-128 ~ 127 (-2^7 ~ (2^7)-1)

在 Java 中,整型的范围与运行 Java 代码的机器无关。这就解决了软件从一个平台移植到另一个平台,或者在同一个平台中的不同操作系统之间进行移植给程序员带来的诸多问题。

长整型数值有一个后缀 L。十六进制数值有一个前缀 0x。八进制有一个前缀 0。

从 Java 7 开始,街上前缀 0b 就可以写二进制数。另外,从 Java 7 开始,还可以为数字字面量加下划线。这些下划线只是为了让人更易读,Java 编译器会去除这些下划线。

1 packagedatatype;2

3 public classDemo1 {4

5 public static voidmain(String[] args) {6

7 System.out.println(0b1001);8

9 int a =1_000;10 System.out.println(a);11

12 int b =2_004;13 System.out.println(a +b);14 }15

16 }

Java 没有任何无符号类型。

浮点类型用于表示有小数部分的数值。

类型

存储需求

取值范围

float

4 byte

大约 -3.4E38 ~ 3.4E38 (有效位数为 6 ~ 7 位)

double

8 byte

大约 -1.7E308~ 1.7E308 (有效位数为 15 位)

double 表示浮点型的数值精度是 float 的两倍,绝大部分应用程序都采用 double 类型。实际上,只有很少的情况适合使用 float 类型,例如,需要快速地处理单精度数据,或者需要存储大量数据。

float 类型的数值有一个后缀 F。没有后缀 F 的浮点数职默认为 double 类型。当然,也可以在数值后面添加后缀 D。

在 JDK 5.0 中,可以使用十六进制表示浮点数值。例如,0.125 可以表示成 0x1.0p-3。在十六进制表示法中,使用 p 表示指数,而不是 e。注意,尾数采用十六进制。指数的基数是 2,而不是 10。

1 packagedatatype;2

3 public classDemo1 {4

5 public static voidmain(String[] args) {6

7 System.out.println(0x1.0p-3);8

9 }10

11 }

所有的浮点数值计算都遵循 IEEE 754 规范,下面是用于表示溢出和出错情况的三个特殊的浮点数值:

正无穷大

负无穷大

NaN (不是一个数字)

http://blog.163.com/take_make/blog/static/2082122102013102334720381/

122c6eddabc4474e0c324b30d0e3142e.png

浮点数不适合用于禁止出现舍入误差的金融计算中。其主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数 1 / 10 。这就好像十进制无法精确地表示 1 / 3 一样。如果需要在数值计算中不含有任何舍入误差,就应该使用 BigDecimal 类,注意使用构造函数为传入 String 类型的,直接传入浮点类型会带来吊炸天的问题。

Unicode 编码单元可以表示为十六进制值,其范围从 \u0000 到 \uffff。

除了可以采用转义序列符 \u 表示 Unicode 代码单元的编码之外,还有一些用于表示特殊字符的转义序列符。所有这些转义序列都可以出现在字符常量或字符串的引号内。

6e2e981b8014818ae0c7d918e9247dea.png

在 Java 中,char 类型用 UTF-16 编码描述一个代码单元。强烈建议不要在程序中使用 char 类型,除非确实需要对 UTF-16 代码单元进行操作。最好将需要处理的字符串用抽象数据类型表示。

21. boolean 类型有两个值:false 和 true,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。

如果想要知道哪些 Unicode 字符属于 Java 中的字母(这里指可以作为变量名一部分的字符),可以使用 Character 类的 isJavaIdentifierStart 和 isJavaIdentifierPart 方法进行检测。

尽管 $ 是一个合法的 Java 字符麻烦不要在你自己的代码中使用这个字符。它只用在 Java 编译器或其他工具生成的名字中。

声明一个变量之后,必须用赋值语句对变量进行显式初始化,千万不要使用未被初始化的变量。

5640c8d1339969dcb7b96ed1f5e3e8a1.png

在 Java 中,利用关键字 final 指示常量。

习惯上,常量名使用全大写。

在 Java 中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字 static final 设置一个类常量。

>>> 运算符用 0 填充高位; >> 运算符用符号位填充高位; 没有 <<< 运算符。

对以为运算符右侧的参数需要进行模 32 的运算(除非左边的操作数是 long 类型,这种情况下需要对右侧操作数模 64)。

ff57847a8da42c847b0b6d6a14288612.png

如果得到一个完全可预测的结果比运行速度更重要的话,那么就应该使用 StrictMath 类。它使用自由发布的 Math 库实现算法,以确保在所有平台上得到相同的结果。

d83add5cc48fedbe7330164fdec2e079.png

Math.round

04d1a12b6ef26edcaadf6f505ab6b3d5.png

运算符优先级

47f9d3870dd983cbc04182aaefd38ce3.png

如果虚拟机始终将相同的字符串共享,就可以使用 == 运算符检测字符串是否相等。但实际只有字符串常量是共享的,而 + 或 substring 等操作产生的结果并不是共享的。因此,千万不要使用 == 运算符测试字符串的相等性,以免在程序中出现糟糕的 bug。

构建字符串使用字符串连接的方式效率比较低。每次连接字符串,都会构建一个新的 String 对象,既耗时,又浪费空间。使用 StringBuilder 类就可以避免这个问题发生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python开发【第十九篇】:Python操作MySQL

本篇对于Python操作MySQL主要使用两种方式&#xff1a; 原生模块 pymsqlORM框架 SQLAchemypymsql pymsql是Python中操作MySQL的模块&#xff0c;其使用方法和MySQLdb几乎相同。 下载安装 1pip3 install pymysql使用操作 1、执行SQL 123456789101112131415161718192021222324252…

20180705 考试记录

T1 货物运输弱化版 题解&#xff1a; 倒着跑最短路就行没仔细看题凉凉 code: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #define F(i,a,b) for(register int i(a);i<(b);i) using namespace std;int rd() {int x…

mysql集群跨地域同步部署_跨地域冗余 - 跨数据中心部署方案 - 《TiDB v2.1 用户文档》 - 书栈网 · BookStack...

跨数据中心部署方案作为 NewSQL 数据库&#xff0c;TiDB 兼顾了传统关系型数据库的优秀特性以及 NoSQL 数据库可扩展性&#xff0c;以及跨数据中心(下文简称“中心”)场景下的高可用。本文档旨在介绍跨数据中心部署的不同解决方案。三中心部署方案TiDB, TiKV, PD 分别分布在 3 …

使用Maven进行硒测试自动化

今天&#xff0c;我想帮助您更好地管理自动GUI测试&#xff08;Selenium&#xff09;。 在过去&#xff0c;我已经看到人们处理此问题的许多不同方式。 有些人只是使用Selenium-IDE编写这些普通HTML TestCases&#xff0c;将其存储在HDD上的某个位置&#xff0c;并在需要时手动…

js小练习题

1.2018年01月5日 11:40:30 星期三 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>Title</title>6 <script>7 8 function getCurrentDate(){9 //1. …

OC之OBJC2_UNAVAILABLE

OC之OBJC2_UNAVAILABLE】 1、What is OBJC2_UNAVAILABLE macro mean&#xff1f; 意即在OBJC2.0中&#xff0c;这些东西将被删除。 转自 https://www.cnblogs.com/tekkaman/archive/2013/04/24/3040727.html转载于:https://www.cnblogs.com/-WML-/p/9269067.html

使用prismjs为网站添加代码高亮功能

prismjs 是一款轻量、可扩展的代码语法高亮库&#xff0c;使用现代化的 Web 标准构建&#xff0c;使用 Prismjs 可以快速为网站添加代码高亮功能&#xff0c;支持超过113中编程语言&#xff0c;还支持多种插件&#xff0c;是简洁、高效的代码高亮解决方案。科技爱好者博客就是使…

Mockito – JAXB的RETURNS_DEEP_STUBS

很抱歉没有写一段时间&#xff0c;但是我正忙于为DZone编写JBoss Drools Refcard&#xff0c;而且我正在写一本有关Mockito的书&#xff0c;因此我没有太多时间来写博客了…… 无论如何&#xff0c;最近在我当前的项目中&#xff0c;我对使用Mockito和JAXB结构进行单元测试有一…

协作机器人(Collaborative-Robot)安全碰撞的速度与接触力

协作机器人&#xff08;Collaborative-Robot&#xff09;的安全碰撞速度和接触力是一个非常重要的安全指标。在设计和使用协作机器人时&#xff0c;必须确保其与人类或其他物体的碰撞不会对人员造成伤害。 对于协作机器人的安全碰撞速度&#xff0c;一般会设定一个上限值&…

jackson - @JsonProperty的使用

jackson的maven依赖 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.3</version> </dependency> 所以引入这一个依赖就可以了 JsonProperty 此注解用于属…

python 表达式求值数据结构_python 数据结构与算法

python 数据结构与算法1 python常见数据结构性能1.1 List1.1.1 安索引取值和赋值1.1.2 列表append和__add__()1.1.3 使用timeit模块测试执行时间1.1.4 List基本操作的大O数量级1.2 Dict1.2.1 dict数据类型2 线性结构 Linear Structure2.1 栈Stack2.1.1 抽象数据类型Stack2.1.2 …

CSS3新特性罗列

接触CSS3这么久了&#xff0c;总是到要用的时候直接拿来用&#xff0c;却没有好好地总结归纳一下&#xff0c;那就在这里好好梳理一下吧。 CSS3边框&#xff1a; 圆角边框&#xff1a; 关键&#xff1a;border-radius <!DOCTYPE html> <html> <head> <…

Log4j 2:性能接近疯狂

最近&#xff0c;Apache社区中一位受人尊敬的成员尝试了Log4j 2并在Twitter上写道&#xff1a; TheASF &#xff03;log4j2摇摇欲坠 &#xff01; 性能接近疯狂^^ http://t.co/04K6F4Xkaa — Mark Struberg&#xff08;struberg&#xff09; 2013年5月7日 &#xff08;来自M…

Uncaught SyntaxError: Invalid Unicode escape sequence异常处理

今天碰到一个问题&#xff0c;页面报错&#xff1a;Uncaught SyntaxError: Invalid Unicode escape sequence ,{index:operate,name:operate,label:<s:text name"com.vrv.cems.ptp.installSoft.operate"></s:text>,width:getPerWidth(0.1),formatter:fun…

26、jQuery

一. jQuery简介 (一) jQuery是什么&#xff1a; 是一个javascript代码仓库 是一个快速的简洁的javascript框架&#xff0c;可以简化查询DOM对象、处理事件、制作动画、处理Ajax交互过程。 (二) jQuery优势 体积小&#xff0c;使用灵巧(只需引入一个js文件)方便的选择页面元素(模…

玩转ajax

1.什么是ajax&#xff1f; Ajax 是 Asynchronous JavaScript and XML&#xff08;以及 DHTML 等&#xff09;的缩写。 2.ajax需要什么基础? HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段。 JavaScript 代码是运行 Ajax 应用程序的核心代码&#xff0c;帮助改…

Spring MVC:验证器和@InitBinder

很难想象没有针对用户数据的验证逻辑的Web应用程序。 几乎所有用户的数据都有一些限制&#xff0c;例如&#xff0c;出生日期应由日&#xff0c;月&#xff0c;年等组成。SpringMVC拥有自己的数据验证解决方案&#xff0c;并且在Validator界面的帮助下可用。 Spring MVC Vali…

ADB 调试

1、adb简介 adb的全称为Android Debug Bridge&#xff0c;就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序&#xff0c;说白了就是debug工具。adb的工作方式比较特殊&#xff0c;采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯&#xff…

margin折叠-从子元素margin-top影响父元素引出的问题

正在做一个手机端电商项目&#xff0c;顶部导航栈的布局是一个div包含一个子div&#xff0c;如果给在正常文档流中的子div一个垂直margin-top&#xff0c;神奇的现象出现了&#xff0c;两父子元素的边距没变&#xff0c;但父div跟着一起往下走了&#xff01; html代码&#xff…

Flexible 弹性盒子模型之CSS flex-shrink 属性

实例 让第二个元素收缩到其他元素的三分之一&#xff1a; 效果预览 div:nth-of-type(2){flex-shrink:3;}浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号。 紧跟在 -webkit-, -ms- 或 -moz- 后的数字为支持该前缀属性的第一个版本。 属性 flex-shrink29.021.…