Lantian和tianqi的移动开发之旅 - 001

来源:互联网 发布:淘宝蚂蚁花呗怎么设置 编辑:程序博客网 时间:2024/05/22 08:20

Java基础语法

1.java的数据类型

byte1b 127short2b 32767int4b 2^31-1long 8b 92233720368float4bdouble8bchar2bboolean1b数据类型:
1.整形:byte,short,int,long
2.浮点型:float,double
3.字符型:char
4.布尔型:boolean
java不存在无符号类型

java7 支持
0b二进制
0八进制
0x十六进制

对于浮点数的一些易错点:
double 之后最好加d/D
float 之后必须要加f/F
因为在java中,所有的浮点型的默认类型都是double

自动转换(低->高)
强制转换:数据域前附加()
精度丢失(高->低)
精度增加(低->高)
根据上面的判断附上转化表:
byte,short,char->int->long->float->double

数据类型支持的操作:
+,-,*,/,%,++,--,>,>=,<,<=,==,!=,&&,||,!,&,|,^,~,>>,<<
三目运算符 ?:  

2.数组

数组的定义:
typename arrayname[];  //注意此两种初始化之后是没有内存的typename[] arrayname;
数组的初始化分为两种,一种是静态初始化,一种是动态初始化
静态初始化我们在声明声明了空的字符串之后,我们可以直接的初始化,初始化的时候我们自动的给数组分配相应大小的内存空间
动态初始化我们需要用到new语句,new语句在队中为我们设置内存空间(大小自己指定)动态分配之后我们就只能一个一个去赋值了

注意,每个数组都有一个length引用的属性,代表我们的数组的大小

二维数组的声明和一维数组大致上类似的
但是在java中没有c那种的固定的内存空间的大小限制,我们的二维数组的大小的每一层都是可以动态的指定的
画个图我们可以清晰地看出来:
|||||||||||||
||||||
|||||||||
|||||||||||||||||
每一位我们都可以动态的分配大小
但是我们需要注意,数组的大小一旦我们是声明之后就会不变,所以说我们需要改变数组的大小需要重新的考虑另一种方案

对于数组的循环遍历操作我们可以采用C原本的语法采用for循环语句我们还可以使用加强版你的java
也就是我们的foreach语句,我们的foreach语句格式如下
for( var : array)  var存储变量,每一次我们从array数组中获取相应的变量然后加入到我们的var变量中

因为数组一旦声明之后就无法随意的改动,所以说我们完全在平常的应用的时候大多时候应用的都是Arraylist类
其实原理相当于一个链表,有很多的方法,remove,get,clear,add方法来实现

3.字符串

1.定义在“”内的都是字符串
2.字符串一旦声明之后的长度和内容都不会变化已经固定了
3.在system输出语句中我们的字符串拼接的操作其实就是对其他的数据类型调用toString方法拼接成一个整个字符串
4.正因为定义声明之后的长度是不会变化的,所以说我们只要的字符串的加法操作实际上是在声明一块内存然后我们将原来的内容拷贝到新的内存中,这样的效率其实非常的低下
ps:String str=new String;的写法其实是错误的,因为其实我们相当于动摇开辟了一块内存然后让str这个已经有了的字符串对象去指向他,完全没有必要,实际上我们直接就已经有了str这个对象

操作:
length()返还字符串的长度
charAt()根据索引返还字符串的相应的元素
contains()检查有没有子串,返回boolean型
replace(,)将原串的中的子串重新的修改,返回一个字符串类型,原本的额内存不变,我们只是返还了一个新的内存
split()用指定的 字符串 分割字符串,返回一个字符串数组,分割字符串我们吃掉了

StringBuffer字符串缓冲区
我们如果对一个字符串进行大量的频繁的操作的时候,只用string的话我们是不断地生成新的类然后返还保存,按时这样的效率太过低下,所以说我们这里引入stringbuffer类,方便的对字符串进行各种操作
append()追加字符串,相当于之前的+
deleteCharAt()删除指定的字符
delete(,)删除区间子字符串,前闭后开
insert(,)插入制定位置之后插入相应的的字符串,相当于我们的加强版的append方法
setCharAt()指定位置我们修改字符



0 0
原创粉丝点击