1. 基本格式:
public class HelloWprdApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 10;
num = 30;
System.out.println("num="+num);
System.out.println("num*num="+num*num);
}
}
String args[]:传统的写法,c、c++都用该种写法;
String[] args :Java的写法,但Java也能用上面的方法定义。
实际上String[] args 是定义一字符串数组变量。
在java中,String[] args和String args[] 都可以定义数组。二者没有什么区别。为规范编码,推荐使用String[] args。另外args可以随意改,和其它变量一样,它只不过是一变量名,只要符合变量名规则即可。
打印语句:
System.Out.println(""); 带有换行
System.Out.print(""); 不带有换行
java申明一个类的方法有两种:
<i>public class 类名称要和文件的名称一样,否则不能编译
<ii>class 类名称可以和文件的名称不一样,编译时候生成的是 类名称.class
2.java基本数据类型
数据类型 大小/位 可表示的数据范围 默认值
long(长整数) 64 -2^63~2^63-1 0L
int(整数) 32 -2^31~2^31-1 0
-0x80000000~0x7FFFFFFF -2147483648~2147483647
short(短整数) 16 -32768~32767 0
byte(位) 8 -128~127 0
char(字符) 2 0~255 \u0000
float(单精度) 32 -3.4E38~3.4E38 0.0f 定义为float型的时候,数值的后面要加上f
double(双精度) 64 -1.7E308~1.7E308 0.0d 注意使用浮点型数值的时候,默认使用的是double型,后面加上f的时候才使用float型
boolean 1 flase true flase
当数值发生溢出的时候,会形成循环,即最大值加上1后会变成最小值
强制转换类型的两种方法
Integer.MAX_VALUE+2L 在加的数字后面加上L表示强制转换成长整形
((long)Integer.MAX_VALUE+2) 在加的数字前面加上long实现强制转换
3.常用的转义字符
转义字符 描述
\f 换页
\\ 反斜线
\b 倒退一格
\' 单引号
\r 归位
\" 双引号
\t 制表符tab
\n 换行
4.类型的转换
当表示范围小的数值类型加上大的数值类型的时候,会自动转换成大的数值类型,比如short+int,会自动把结果转换成int型
当数值类型加上字符串的时候,都转换成字符串类型
5.位运算符
位运算符 描述
& 按位与
| 按位或
^ 异或(相同为0,不同为1)
~ 取反
<< 左移位
>> 右移位 正数右移的时候左边补零,负数左边补一
>>> 无符号移位 正数负数右移的时候左边都补零
数组中,数组的名字,即地址存在栈内存中,地址指向的内容存在堆内存中,开辟新的堆内存必须要用关键字new,栈内存中存储的是堆内存的访问地址
当堆空间没有任何栈空间引用的时候,就成为了垃圾空间,等待这垃圾回收机制进行回收
数组的复制:System.arraycopy(i1,3,i2,1,3)源数组名称 源数组开始点 目标数组名称 目标数组开始点 复制长度
6.逻辑运算符优先级
7.方法的定义方式
public static void 方法名字(类型 参数,类型 参数。。。){
程序语句
}
8.可变参数
fun();
fun(1);
fun(1,2,3,4,5);
public static void fun(int... arg){
for(int i=0;i<arg.lenght;i++){
system.out.print(arg[i]+"、");
}
}
9.foreach语法
for(数据类型 变量名称:数组名称)
public static void fun(int... arg){
for(int x:arg){
system.out.print(x+"、");
}
}
10.类的定义
class Person{
private string name;//把属性封装,讲不能通过XX.name访问,必须通过setter和getter方法设置和取得
private int age;//private也可以用-表示
public Person(String name,int age){ //构造函数,和类名同名
this.setName(name);
this.setAge(age);
}
public void tell(){
system.out.println();
}
}
对象的创建和使用
类名 对象名称 = null;
对象名称 = new 类名();
或者
类名 对象名称 = new 类名();
匿名对象
new Person("张三",30).tell();//匿名对象,匿名对象一般是作为其他类实例化对象的参数传递,匿名对象是一个堆内存空间,没有栈空间
类设计分析
<1>根据要求写出类所包含的属性
<2>所有的属性都必须进行封装(private)
<3>封装之后的属性通过setter和getter设置和取得
<4>如果需要可以加入若干构造方法
<5>再根据其他要求添加相应的方法
<6>类中的所有方法都不要直接输出,而是交给被调用处输出
<7> 永远不要继承一个已经实现好的类,只能继承抽象类或者实现接口,因为一旦发生对象的向上转型关系后,所调用的方法一定是被子类所覆写的方法
11.string对象
使用==比较string对象的时候比较的是string的地址
使用.equals方法比较的是string对象的内容
<1>使用string str = new string("hello");创建一个新的string对象,"hello"创建一个对象,new关键字又创建一个对象,所以建议使用第二种方法创建对象
<2>string str = "hello";
注意:字符串的内容不可以修改,所以要避免对字符串的内容进行连续的修改,因为修改一次就要开辟两个新的内存空间,通过断开和连接进行字符串的修改。
要通过StringBuffer类进行修改。