第一节:
- eclipse新建java的工程
- 在工程中新建package
- 在package中新建类,这个地方就需要注意package中可以新建多个类,并且新建的多个类不需要想C++一样添加添加头文件啥的才能使用类,只要在一个package中就可以直接使用其中的所有类。当然将所有的类卸载一个文件中也是可以的。main文件应该只需要有一个就行了,这个问题还没有测试。
第二节:
- System.out.println和System.out.print的区别:前者打印完毕之后会自动换行,而后者不会自动换行。
- 和C/C++的区别:java会自己给变量初始化,数值型:0;布尔行:false;其他:null;
- 在一个.java文件中,有且只能有一个类带有public关键字.
第三节:
- java中interface的作用。interface就是定义了一个公共接口,如果你的类是implements某个interface,那么在该类中就必须要实现interface中的所有方法,不然就会报错。当然不在interface里面的方法是可以随便写的,不受限制。interface就我的理解来说,应该是为了增加通用性。
- 一个类可以implements多个interface,当然对应的就是多个interface中的方法在类中都必须实现了!
- interface中的方法在类中实现的时候都必须是public的,不然就会报错。
第四节:
- 前面有说,每个保重只能有一个public的类,而public的类的类名和.java的文件名必须一致!就是因为名字不一样吃亏的!问题还是字母顺序打错了吃的亏!难找啊!
- 包之间进行import的时候,如果其他包里面的类不是public的是不能在另外的包里面引用的!切记!
- 类中的static变量是所有的对象共享的。也就是说所有的对象获取到的static变量值是一致的。static变量只能使用static函数进行修改和获取,不然在其他类中调用的时候会报错。static变量和函数在调用的时候使用"类名.变量/函数"而不是“对象名.变量/函数”,虽然第二种形式也可以获取,但是会有警告。为了区别和代码的易读性,建议使用第一种方式撰写static变量和函数的调用!
第五节:
- 抽象(abstract)方法不用写出具体实现,只需要在继承的子类中实现即可。如果一个类中有抽象方法,类则必须是抽象类;
- 继承抽象类的衍生类必须实现抽象类中的抽象方法,不然给衍生类也必须是抽象类!其他和正常类继承一致。
- 引用和对象;Human aPerson这是一个引用,类似于c和c++中的指针,这个引用存在与程序的栈内存中;new Human()这个才是在堆内存分配对象使用的内存。所以Human otherPerson=aPerson中otherPerson和aPerson两个引用指向的是同一个Human对象,只要使用一个引用对对象中的变量进行修改,另一个引用获取到的这个变量也就改变了。其实就是说上面的两个引用就是一个东西!!所以要注意,当传递的参数是引用的时候,会直接影响到对象内容!而传递想int这样的基本类型变量时,因为是复制一份传递,所以对传递进去的原变量是没有影响的!
- java的垃圾回收机制:当一个对象不存在任何引用的时候就会被回收!只要还存在一个引用就不会被回收!!
- java是强类型的语言!
第六节:
- 类型转换:基础类型之间可以进行任意的转换,但是存在收缩转换(c和C++中的截断)会损失精度,还存在宽松转换,这个就是补零的事情了;
- 类的引用的转换:衍生类可以向基类进行任意的转换,并且java还能正确识别到衍生类中的方法(这个就叫做多态)。但是基类向衍生类转换的时候,该基类的引用必须是从将要转换成的衍生类转换来的才行!
- 所有的java类都有一个公共的基类:Object!嘿嘿,看着就知道这个基类可以干很多坏事了!!!
第七节:
-
s.length() 返回s字符串长度
s.charAt(2) 返回s字符串中下标为2的字符
s.substring(0, 4) 返回s字符串中下标0到4的子字符串
s.indexOf("Hello") 返回子字符串"Hello"的下标
s.startsWith(" ") 判断s是否以空格开始
s.endsWith("oo") 判断s是否以"oo"结束
s.equals("Good World!") 判断s是否等于"Good World!"==只能判断字符串是否保存在同一位置。需要使用equals()判断字符串的内容是否相同。
s.compareTo("Hello Nerd!") 比较s字符串与"Hello Nerd!"在词典中的顺序, 返回一个整数,如果<0,说明s在"Hello Nerd!"之前;如果>0,说明s在"Hello Nerd!"之后;如果==0,说明s与"Hello Nerd!"相等。
s.trim() 去掉s前后的空格字符串,并返回新的字符串
s.toUpperCase() 将s转换为大写字母,并返回新的字符串
s.toLowerCase() 将s转换为小写,并返回新的字符串
s.replace("World", "Universe") 将"World"替换为"Universe",并返回新的字符串
- 不可变对象,String类的对象就属于不可变对象,所谓的不可变对象就是对象的内容在创建后不允许修改;
- PS:对String对象做的修改,例如trim去掉前后空格和replace替换一部分字符串等操作都没有修改原来的字符串对象,都是新建了字符串对象,然后返回新建的字符串对象的引用。所以String对象是不可变对象!