Java-Java程序设计的基本概念
2017-10-06 15:31:39
一、Java程序的基本构成
二、数据类型与标识符
- 数据类型
- 标识符
广义的用于定义各种对象名称的字符串集合称为标识符,标识符一般分为用户自定义标识符和系统标识符。
# 用户自定义标识符
命名规则:
~数字不能作为标识符的开头字符,可以用字母,下划线“_”或“$”作为开头
~标识符中不能有空格
~不能使用java的操作符,如“+”,“-”等
~不能使用Java的关键字
~严格区分大小写
# 系统专用标识符
系统专用标识符又称关键字,是Java编译器本身所规定使用的专用词,他们有特定的语法含义。如:abstract等。
- 常量
常量指在程序的整个运行过程中,其值保持不变的量。
~整型常量值有三种形式:十进制数,如54,-74。
八进制数,Java中的八进制常数的表示以0开头,如0125表示十进制85。
十六进制数,Java中的十六进制常数的表示以0x或0X开头,如0x100表示十进制256。
整型int常数默认占32位内存,长整数类型占64位,表示为数字后加上l,或者L。
~实数常量值有两种形式:十进制数形式,由数字和小数点组成,且必须有小数点,如12.34。
科学计数法形式,如1.75e5或326E3,其中e或E之前必须有数字,且e或者E之后的数字必须是整数。
~字符型和字符串常量值:使用单引号的为一个字符,使用双引号的为字符串。
~布尔型常量值:false和true。
~常量的定义和使用:格式为final type 常量名 = 常量值,常量名 = 常量值;
一般常量名都用大写字母表示,在声明时就该定义。
Java整型的最大值和最小值常量:int 型:Integer.MAX_VALUE,Integer.MIN_VALUE
long型:Long.MAX_VALUE,Long.MIN.VALUE
Float型:Float.MAX_VALUE,Float.MIN_VALUE
Double型:Double.MAX_VALUE,Double.MIN_VALUE
正无穷大:Float.POSITIVE_INFINITY,Double.POSITIVE_INFINITY
负无穷大:Float.NEGATIVE_INFINITY,Double.NEGATIVE_INFINITY
0/0不定型:Float.NaN,Double.NaN
- 变量
~整型变量共四种类型byte(8位),short(16位),int(32位),long(64位),Java中不提供任何无符号整数类型,这是与C++的区别。
~实型变量有float(32位)和double(64位)类型
~字符变量的类型位char(16位),采用的是Unicode字符集。
~布尔型变量取值概念共两种类型false,true,占1位。
Java中成员变量有默认值,整数和实数为0,boolean为false;局部变量必须自行赋值。
- 运算符和表示式
Java中运算符C++与中类似,都有++,--,+/,?:等等。
- 数组
在程序设计解决实际问题的过程中,往往要处理大量相同类型的数据,而且这些数据要被反复引用,这时候,使用数组这种数据类型是明智的选择。
~一维数组的声明与使用
type 数组名[]=new type[元素个数];
可以使用数组名.length来获取数组的长度值。
数组的赋值方法主要有两种:在声明时直接赋值,type 数组名[]={<数组1>,<数组2>,<数组3>...}
若是对数组元素有规律赋值,则可以使用循环。
~二维数组的声明与使用
type 数组名[][]=new type[行元素个数][列元素个数],如int myarray[][]=new int[5][6];
对于二维数组元素的赋值同样可以在声明的时候进行,例如:
int array[][] = {{20,25,2,4},{2,4,5,6}};
Java多维数组的声明和使用非常灵活,他可以从最高维起分别为每一维分配内存,对于创建二维数组来说,可以使用如下的更灵活的声明方式:
type arrN[][] = new type[arrNum1][];
arrN[0] = new type[1];
arrN[1] = new type[3];
arrN[arrNum1-1] = new type[8];
~数组的复制
将arr1数组复制到arr2中,可以使用System.arraycopy(arr1,0,arr2,0,arr1.lenght),把arr1中所有元素复制到arr2中,下标从0开始。
- 字符串
~常量字符串String
String 字符串的声明和初始化。
String s = "Hello,World!";
也可以使用字符数组来初始化
char ch[] = {'a','r','t'};
String s = new String(ch);
可以使用‘+’来串联字符串。
String类的常用方法:
int length():返回当前字符串的长度
boolean equals(String str):区分大小写比较两个字符串的内容是否相等
boolean equalsIgnoreCase(String str):不区分大小写比较两个字符串的内容是否相等
char charAt(int index):返回字符串中index处的字符
String substing(int BIndex):截取字符串从BIndex处开始到末尾的字串
String replace(target,replace):将字符串中的target转换成replace
String trim():返回去掉当前字符串前后空格的字符串
String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
char[] toCharArray(String str):将此字符串转换为一个新的字符数组。返回一个新分配的字符数组,它的长度是此字符串的长度,它的内容被初始化为包含此字符串表示的字符序列。
int indexOf(String str,int i):在当前字符串中从i处查找str字串,若找到,返回字串第一次出现的位置,否则返回-1
注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
~StringBuffer类和StringBuilder类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
声明类比String类,基本一致。
初始化需要特别注意,就是不存在直接使用字符串进行初始化,必须使用new StringBuffer(String str)来手动新建。
常用方法:
StringBuffer append(String str):将str字符串加到原串的末尾
StringBuffer delete(int start,int end):删除字符串中子字符串的字符,[start,end)
StringBuffer insert(int k,String str):在字符缓冲区的k位置插入字符串str
StringBuffer reverse():将字符串反转
StringBuffer replace(int m,int n,String str):将[m,n)中的字符串替换成str
int length():返回字符数
String toString():返回常量字符串格式
Java-Java程序设计的基本概念的更多相关文章
- Java并发程序设计(一) 基础概念
Java并发程序设计(一) 基础概念 一.必须知道的几个概念 一)同步(Synchronous)和异步(Asynchronous) 同步:同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后 ...
- 20145223《Java程序程序设计》课程总结
20145223<Java程序程序设计>课程总结 每周读书笔记链接汇总 第一周学习总结 第二周学习总结 第三周学习总结 第四周学习总结 第五周学习总结 第六周学习总结 第七周学习总结 第八 ...
- JAVA课程实验报告 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:韩玉琪 学号:20135317 成绩: 指导教师:娄嘉 ...
- 20145221 《Java程序设计》实验报告二:Java面向对象程序设计
20145221 <Java程序设计>实验报告二:Java面向对象程序设计 实验要求 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 《JAVA语言程序设计》上课笔记
教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一. 问几个问题 1. 你们到这里来干什么 ...
- 20162321王彪-实验二-Java面向对象程序设计
实验二Java面向对象程序设计 实验内容一 初步掌握单元测试和TDD 什么是单元测试:单元测试时开发者编写的一小段代码,用于检测被测代码的一个很小的,很明确的功能是否正确.执行单元测试,是为了证明某段 ...
- 2017-2018-2 20165236 实验三《Java面向对象程序设计》实验报告
2017-2018-2 20165236 实验三<Java面向对象程序设计>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652 姓名:郭金涛 ...
- 20155305 2016-2017-2 《Java程序设计》实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 单元测试 1. ...
- 20155317 实验二 Java面向对象程序设计
20155317 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...
- 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告
2016-2017-2 20155339 <Java面向对象程序设计>实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验内容 一.在IDEA中使用工具(Co ...
随机推荐
- 电子地图/卫星地图下载并转存为jpg图片
1.下载水经注万能地图下载器破解版 http://download.csdn.net/download/hyb2012/8714725,此软件为绿色免安装且免注册 2.下载后解压缩后,运行sgwn.e ...
- 54. Spiral Matrix(剑指offer--19)
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
- Ubuntu16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细
本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www ...
- jquery一句话实现快速搜索功能
jquery一句话实现快速搜索功能 //快捷搜索公共方法,其中obj为显示行的子节点function filter(obj, filterNameValue){ $(obj).hide().filte ...
- 50个CSS技巧
这里我工作中收集了10个很不错的CSS技巧,你可以用在你的项目上.它可以帮你很好地整理你的元素并让他们看起来蛮酷的.下面开始我们的内容,希望你会喜欢它.下面是我收集的CSS技巧,希望能帮助到你,感觉收 ...
- mysql explicit_defaults_for_timestamp 变量的作用
mysql 中有这样的一个默认行为,如果一行数据中某些列被更新了,如果这一行中有timestamp类型的列,那么么这个timestamp列的数据 也会被自动更新到 更新操作所发生的那个时间点:这个操作 ...
- 关于微信分享到朋友圈(Thinkphp-tp3.2框架下实现)
PHP部分 扩展类代码部分: <?php namespace Think; class JsSdk { private $appId; private $appSecret; public $d ...
- bzoj1704 / P2882 [USACO07MAR]面对正确的方式Face The Right Way
P2882 [USACO07MAR]面对正确的方式Face The Right Way $n<=5000$?枚举翻转长度,顺序模拟就ok了 对于每次翻转,我们可以利用差分的思想,再搞搞前缀和. ...
- nginx负载均衡技术的优缺点
在原来的公司,一般都是采用F5 BIG-IP作为前端负载均衡服务器,后端一般直接用LVS作为mysql的负载均衡机制(应用服务器之间一般采用自行开发的TCP通信机制,其内置了负载均衡和HA),实际用a ...
- 07: jquery.cookie操作cookie
1.1 jquery.cookie常用方法 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术 1. 添加一个"会话cookie" $.cook ...