Java 学习笔记(一)
来源:互联网 发布:js foreach 获取index 编辑:程序博客网 时间:2024/05/21 22:38
构造函数不能有返回值,即使加void也不行,因为void代表的是返回值为空
引用是一种数据类型,是对象的别名,引用并不等于对象。(相当于C语言里的指针)
关于方法的重载,类型个数 次序不同,三点中实现至少任意一点,就能构成方法的重载。
返回类型不同,不构成方法重载,因为系统不能判别该调用那个构造函数、
静态变量属于类,而不属于对象
静态变量和静态方法,在Eclipse当中,字体会变斜。同时,在实际编程当中,应当使用类名去访问,这样做有助于区分是否是静态方法或静态类。
静态代码块,(static{……..}),静态代码块在所有构造方法之前执行,并且只执行一次
计算机内存模型分为:栈内存(顺序结构)和堆内存(离散结构),基本数据类型,都是在栈内存中分配,而引用数据类型都是在堆内存里面分配的。
匿名对象就是没有引用的对象,就是没有起别名的对象(new Person();),但是这个对象仍旧在堆内存当中真实存在
设计类时的方法:
首先设计属性,再设计方法,属性用名词,方法用动词。考虑构造方法的重载,同时要保留不带参数的构造方法。最后要有适当的颗粒度。
String类有两种初始化的方法,一种是静态初始化,还有一种是动态初始化。
//静态初始化:String str1=”hello world!”;//动态初始化: String str2= new String(“hello world”);
静态初始化分配在字符串常量池里,而动态初始化分配在堆内存中。而字符串常量池在堆内存当中。
对于静态初始化而言,若两个字符串的内容相同时,他们所指向的内存空间相同,及str1=str2,所返回的布尔值是true。而动态初始却是新建一个对象,无论内容是否相同。
public class StringDemo {public static void main(String[] args) {//静态初始化字符串String s1 = "hello china!";String s3 = "Hello China!";System.out.println(s1);//动态初始化字符串 String s2 = new String("hello china!,china,china"); String s4 = new String("hello china!"); String s5 = "hello Japan"; String s6 = "Hey,"; //Hey,hello china! String s7 = "北京|上海|南京|武汉|成都"; System.out.println(s1==s3);//true System.out.println(s2==s4);//false System.out.println(s2.equals(s4));//true System.out.println(s1.charAt(6));//获得字符'c' //返回0:s1==s5, 负数 s1<s5 正数 s1>s5 System.out.println(s1.compareTo(s5)); System.out.println(s6.concat(s1)); System.out.println(s6+s1); System.out.println(s1.contains("china"));//true System.out.println(s1.contains("japan"));//false byte[] arr = s1.getBytes(); System.out.println(s2.indexOf("china")); System.out.println(s2.lastIndexOf("china")); String[] citys = s7.split("\\|"); for(int i=0;i<citys.length;i++) { System.out.println(citys[i]); } StringTokenizer st = new StringTokenizer(s7,"|"); System.out.println("-------------------"); while(st.hasMoreElements()) { System.out.println(st.nextElement()); }第一个参数表示开始的下表,并且包括第二个参数表示结束的下表,但是并不包括。 System.out.println(s1.substring(6,s1.length()-1)); System.out.println(s1.toUpperCase()); System.out.println(s3.toLowerCase());}}
在进行应用传递的时候,实参是把自己的的哈希code传递给形参,就相当于实参和形参所指向的是同一个对象,所以可以更改实参的内容。但是形参并不能改变实参所指向的对象,比如说,让形参new下,新指向一个对象,这样就改变了形参的哈希code,这样的话,形参和实参就分别指向两个不同的对象
This关键字可以调用构造方法(必须放在构造方法的第一句)和指向当前对象
Java源程序当中,可以设计多个类
- Java学习笔记(一)
- Java学习笔记(一)
- Java学习笔记(一)
- java学习笔记(一)
- JAVA学习笔记 (一)
- java学习笔记(一)
- java学习笔记(一)
- JAVA学习笔记(一)
- java学习笔记(一)
- Java 学习笔记(一)
- java学习笔记(一)
- Java学习笔记(一)
- java学习笔记(一)
- Java学习笔记(一)
- Java学习笔记(一)
- Java学习笔记(一)
- Java学习笔记(一)
- JAVA学习笔记(一)
- Combination Sum | && || Leetcode
- POJ 3345 Bribing FIPA(树形dp+背包)
- Android生命周期学习笔记
- Python调用SIFT出现的问题:No such file or directory: '*.sift' 解决办法,超好用
- NVIDIA显卡驱动未加载问题——未完全解决
- Java 学习笔记(一)
- tinyxml源代码解析(一)
- 1006-Elevator-解题报告
- JQuery插件
- spring的两种声眀式事务
- Integer源代码
- ubuntu12.04普通用户登陆时,忘记密码??
- linux下文件类型获取
- 使用GitHub Pages + Hexo 快速搭建个性化博客(五)-首页优化和文章分享评论