Java编程入门

来源:互联网 发布:连接视频的软件 编辑:程序博客网 时间:2024/04/29 03:18

95年的咖啡到现在还很热,而且还有变本加厉的趋势。让人吃惊!
就连刚过去的2015年都被it界命名为java年,可见它的可怕之处。
但我,作为一个准程序猿,却连java的门还没入。。
其实我是准备学习c++的,然后尽情嘲笑那些java。
还是太年轻。
不过我挺喜欢java的宣传语,“write once , run anywhere”。

一,变量命名规则

1 , 类名和接口名。所有单词的首字母均大写,多用名词。
2,方法名。首单词的首字母小写,其余单词首字母均大写,首单词多用动词。少用下划线。
3,变量名。首单词首字母小写,其余单词首字母大写,多用名词,不用下划线,少用 $ 符号
4,常量名。基本类型常量名全用大写字母,单词之间用下划线分开。对象常量多用 大小写混合。

二,数据类型

java数据类型
注:String类型不是基本数据类型,它被定义为类,属于引用数据类型。,由于字符串是常用的数据类型。Java提供了对String类型特殊操作,直接引用 字符串的不变性

如果你需要一个可修改的字符串,应该使用StringBuffer 或者 StringBuilder。否则会有大量时间浪费在垃圾回收上,因为每次试图修改都有新的string对象被创建出来。

类型 位长/b 默认值 取值范围
布尔型 (boolean) 1 false true false
字节型(byte ) 8 0 -128~127
字符型 (char) 16 ‘\u0000’ ‘\u0000’~’\uffff’即0~65535
短整型(short) 16 0 -32768~32767
整型(int) 32 0 -231~231-1
长整型(long) 64 0 -263~263-1
单精度(float) 32 0.0 +-1.4E-45 或+-3.4028235E+38
双精度(double) 64 0.0 +-4.9E-324 或+-1.797693134862315E+308

- 八进制整数 以 0开头
- 十进制
- 十六进制 以 0x开头
- 声明long类型整数 要在整数后加上 l 或者“L”(推荐 L 不会与1混淆)

八,十,十六进制之间转换:
int a=6;
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toOctalString(a));
System.out.println(Integer.toHexString(a));

引用类型是一个对象类型的,它的值是指向内存空间的引用,就是地址 int a;    a=250; //声明变量a的同时,系统给a分配了空间。引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么啊,整数,字符?MyDate today;today.day = 4; //发生错误,因为today对象的数据空间未分配。引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。MyDate today;            //将变量分配一个保存引用的空间today = new MyDate();     //这句话是2步,首先执行new MyDate(),给today变量开辟数据空间,然后再执行赋值操作。

三,运算符

c和c++的基本运算符 java都有
除那些之外,
>> 右移
>>> 右移,左边空出的位以0填充 ;无符号右移
<< 左移
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值
>>= 右移赋值
>>>= 右移赋值,左边空出的位以0填充 ;无符号左移
<<= 左移赋值

四,数组

定义数组,并不为数据元素分配内存,因此“[ ]”中不用指出数组中元素个数。
创建数组并不是定义数组,而是在数组定义后,为数组分配存储空间,同时对数组元素进行初始化

int[] a 语义上等于 int a[]

二维数组:
int a[][]=new int[2][] ;
a[0]=new int[3] ; // 第二维第一个元素指向3 个整型数
a[1]=new int[5] ; // 第二维第一个元素指向5 个整型数
注意:Java 可以第二维不等长
int i[][]={{0},{1,4,5},{75,6},{8,50,4,7}} ; //定义和赋初值在一起
注意:java中二维数组分配空间是第二维可以为空,但是第一维必须分配内存。

五,包装类

Java为8个基本数据类型提供了对应的包装类
Boolean,Byte,Character,Short,Integer,Long,Float,Double

六,从控制台利用Scanner输入

//先导入包
import java.util.Scanner
//新建Scanner对象
Scanner scanner = new Scanner(Systen.in)

scanner有如下方法:
1,String next()/nextLine() //接受控制台输入的字符串
2,int nextInt() //接收int类型数据
3 , double nextDouble() //接收double类型数据
4 , boolean nextBoolean() //接收布尔类型数据
5 , char String.charAt(int index) //接受char类型数据(String常用next()代替)

七,String

1,String常用方法:

length() 方法
toCharArray() //字符串转换为字符数组
cahrAt() //从字符串取出指定字符
indexOf() //返回指定字符第一个位置的索引,不存在 返回-1
trim() //去掉字符串的前后空格
subString() //取出子字符串
toLowerCase() toUpperCase() //大小写转换
replace() //替换字符

2,String,StringBuffer,StringBuilder

String是不可变对象,而StringBuffer,StringBuilder是可变的。

三者的区别和用法直接参考这里吧,我就不贴了
http://blog.csdn.net/kingzone_2008/article/details/9220691

String s1 = "hello"
String s2 = "hello"
System.out.println(s1 == s2);
String s3 = new String("hello");
String s4 = new String("hello");
System.out.println(s3 == s4);
System.out.println(s3.equals(s4));
输出:
true
false
true

第一个输出为true的原因是s1和s2都指向同一个常量,”hello”字符串存放在常量区,而第二个输出为false,new出来的区域在堆区,s3和s4指向的两个”hello”不是同一块内存。

0 0
原创粉丝点击