java日常学习:eclipse、Object类、String类

#java代码块


##eclipse的使用
eclipse 的使用步骤:
1. 要求你选择一个工作目录 。 工作目录: 以后的所有代码都会存储到工作目录的文件夹中, 2. 以后写代码是以工程作为单位。如果需要写代码首先必须 要先新建一个 工程。

创建一个工程的步骤:

package Explorer  ----> 右击 ------> new -------->other ------>java Project 

工程目录的介绍:

		.settings : 该文件夹存储的是eclipse自动生成的配置文件,千万不要碰。 
		bin : 用于存储class文件。以后所有的class文件都会存储到bin目录中。
		src :  用于存储java源文件。

修改字体:

	windows ----------- perference ----------> 输入text ----------> text editor -------- colors and fonts 

新建一个java文件的步骤:

	src ----------右击 ---------------->  new  ------------>class -----------编写好类名

运行一个java文件的方式:

	方式一:  右击---------》 run as --------------- 》 java Application
	
	方式二:  绿色箭头-------》run as --------------- 》 java Application

	方式三: ctrl+ f11

使用eclipse的好处:
1. 不需要我们手动的编译,只要你保存java文件,那么就会自动编译。
2. 可以精准的报错,会自动修复。

快捷键的使用:

alt + /  			内部补全   

ctrl + 1        		自动修复

ctrl + shift + f		代码格式化

alt + 上下方向键                代码移动

ctrl + shift + x                转大写

ctrl + shift + y                转小写

ctrl+ shift + /                  添加多行注释

ctrl + shift + \                取消多行注释

ctrl + /                       添加取消单行注释。
	

ctrl + d                      删除当前行代码

设置自定义快捷键:

window ----------- > preference -----------keys ------------>getter |  const

##object类
找对象的方式:

方式一: 自定义类,通过自定义类创建对象。

方式二:sun定义好了很多的类,我们只需要认识这些类即可通过这些类创建对象为我们所用。

Object 类:

Object类是所有类的终极父类。

Object类常用的方法:
toString() 返回的字符串是用于描述该对象的
equals(Object obj) 判断两个对象是否为同一个对象, 默认比较 的是内存地址。
hashCode() 返回一个对象的哈希码值。哈希码 值可以看做一个对象的内存地址。

java规范: 一般我们在重写equals方法的时候,我们都会重写hashCode方法.

查看源代码的方式:

方式一: 按住ctrl+ 鼠标单击

方式二: 按下f3

###Object类练习一
//需求:如果用户名和密码相等就判定为同一个用户
package day01;

public class Demo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person user1 = new Person("admin1", "123");
		System.out.println(user1);
		Person user2 = new Person("admin1","123" );
		System.out.println(user2);
		System.out.println("是同一个对象吗?"+user1.equals(user2));
		System.out.println("user1的哈希码值:"+user1.hashCode());
		System.out.println("user2的哈希码值:"+user2.hashCode());
	}

}
class Person{
	String userName;
	String password;
	public Person(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "用户名:"+userName+" 密码:"+password;
	}
	
	@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub
		Person user = (Person)obj;
		return  this.userName.equals(user.userName)&&this.password.equals(user.password);
	}
	
}

###Object类练习二
//如果两个人的身份证号码一致,则为同一个人,且哈希值改为身份证值
package day01;

class People {
	int id;
	String name;

	public People(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	
	/*
	为什么要重写toString方法? 因为直接输出一个user
	对象的时候输出的是该对象的toString方法返回 的字符串,该字符串是Object的toString方法返回的不能
	满足我目前的需求,所以则进行了重写。

	 */
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "身份证号:" + id + " 姓名:" + "name";
	}

	//如果一个人的身份证编号一致,那么则为同一个人。
	@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub
		People people = (People) obj;
		return this.id == people.id;
	}

	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return this.id;
	}
}

public class Demo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		People p1 = new People(123, "狗娃");
		System.out.println(p1);
		People p2 = new People(123, "狗蛋");
		System.out.println(p2);
		System.out.println("相等吗? " + p1.equals(p2));
		System.out.println("狗娃的哈希值:" + p1.hashCode());
		System.out.println("狗蛋的哈希值: " + p2.hashCode());
	}

}

##Sting类
###String类练习一

/*
 String 类
 
 */
public class Demo1 {
	
	public static void main(String[] args) {
		String str1 = "hello";
		String str2 = "hello";
		String str3 = new String("hello");
		String str4 = new String("hello");
		
		System.out.println("str1==str2?"+(str1==str2));   				//true      
		System.out.println("str2==str3?"+(str2==str3));   				//false  
		System.out.println("str3==str4?"+(str3==str4));   				// false  
		System.out.println("str2.equals(str3)?"+(str2.equals(str3)));  // true
		System.out.println("str3.equals(str4)?"+(str3.equals(str4)));  //true
		/*
		 String类已经重写了Object的equals方法,比较的是两个字符串的内容是否一致,如果一致
		 则返回true,否则返回false
		 
		 */
		
		}

}

String类的构造方法:

String()
String(byte[] bytes) 使用一个byte数组构建一个字符串 . byte数组存储的是字符对应的码值。
String(byte[] bytes, int offset, int length) 使用一个byte字节数组构建一个字符串对象,指定开始使用的位置索引值与使用的字符个数。
String(char[] value) 使用字符数组构建 一个字符串
String(char[] value, int offset, int count) 使用一个char字符数组构建一个字符串对象,并且指定开始使用的位置索引值与使用的字符个数。
String(“字符串”)

总结: 使用字节数组与字符数组是可以构建一个字符串对象的。

###String类练习二

/*
获取方法
		int length()  获取字符串的长度
		char charAt(int index) 获取特定位置的字符 (角标越界)
		int indexOf(String str) 获取特定字符的位置(overload)
		int lastIndexOf(int ch) 获取最后一个字符的位置
*/
public class Demo3 {
	
	public static void main(String[] args) {
		String str  = "中国人abc美国人abc";
		System.out.println("获取字符的个数:"+ str.length());
		System.out.println("指定索引值查找字符:"+ str.charAt(2));
		System.out.println("查找指定字符串第一次出现的索引值:"+ str.indexOf("abc"));
		System.out.println("查找指定字符串最后一次出现的索引值:"+ str.lastIndexOf("abc"));
	}

}

###String类练习三
package cn.itcast.string;

import java.util.Arrays;
/*
3.3判断方法
	boolean endsWith(String str) 是否以指定字符结束
	boolean isEmpty()是否长度为0 如:“” null V1.6
	boolean contains(CharSequences) 是否包含指定序列 应用:搜索
	boolean equals(Object anObject) 是否相等
	boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等

转换的方法;
	char[] toCharArray()  将字符串转换为字符数组
	getBytes();   把字符串转换字节数组

*/

public class Demo4 {
	
	public static void main(String[] args) {
		/*
		String str = "Demo1.java";
		System.out.println("是否以指定的字符结束:"+ str.endsWith("java"));
		str = "";
		System.out.println("判断指定的字符是否为空内容:"+ str.isEmpty());
		str = "hello java";
		System.out.println("判断字符串是否包含指定的字符:"+ str.contains("hel "));
		
		//str = null;
		System.out.println("判断的内容是否一致:"+ "HELLO JAVA".equals(str));
		System.out.println("忽略大小写比较的内容是否一致:"+ "HELLO JAVA".equalsIgnoreCase(str));
		*/
		
		String str = "Demo1";
		char[] arr = str.toCharArray(); //把字符串转换一个字符数组
		System.out.println("字符数组的元素:"+ Arrays.toString(arr));
		byte[] buf = str.getBytes();
		System.out.println("字节数组 的元素:"+ Arrays.toString(buf));
		
		}

}

###String类练习四
import java.util.Arrays;

/*
3.5其他方法
	String replace(char oldChar, char newChar) 替换
	String[] split(String regex) 切割
	String substring(int beginIndex)   
	String substring(int beginIndex, int endIndex)截取字串
	String toUpperCase() 转大写
	String toLowerCase() 转小写
	String trim() 去除空格
	 */


public class Demo5 {

	public static void main(String[] args) {
		String str  =  "hello world";
		System.out.println("替换的方法:"+ str.replace("world","大家"));
		
		str = "你们-大家-下午好";
		String[] datas = str.split("-"); // 指定分隔符进行切割。
		System.out.println("字符串数组 的内容:"+ Arrays.toString(datas));
		
		str = "hello java";
		System.out.println("指定开始的索引值截取字符串:"+ str.substring(6));
		System.out.println("指定开始与结束的索引值截取字符串:"+ str.substring(6, 8)); // 注意 : 截取的位置是从startIndex开始,末尾是endIndex-1(包头不包尾)
		
		str = "大家好";
		System.out.println("转大写:"+ str.toUpperCase());
		str = "aBC";
		System.out.println("转小写:"+ str.toLowerCase());
		
		str = "      大家今晚         要考试   ";                             
		System.out.println("清除首尾的空格:"+str.trim());
			}
	
}

###String练习五
/*练习1: 自己实现一个trim方法。

练习2: 获取上传文件名。

练习3:将字符串对象中存储的字符反序。
*/
package day01;

public class Demo3 {

	public static void main(String[] args) {
		/*
		 * // TODO Auto-generated method stub String str =
		 * "     我   爱 你 中     国                  ";
		 * System.out.println("结果:"+str.replace(" ", "")); 
		 * String path = "E:\\新java视频\\day13\\视频";
		 * 
		 * System.out.println("文件是:"+getFileName(path));
		 */
		String str = "吃葡萄不吐葡萄皮";
		System.out.println("结果是:" + reverse(str));
	}

	// 剔除首尾空格;
	/*
	 * public static String myTrim(String str) {
	 * //定义两个变量记录开始于结束的索引值
	 * int startIndex = 0; 
	 * 
	 * int endIndex = str.length()-1;
	 * 
	 * //确定开始的索引值
	 * 
	 * while (str.charAt(startIndex)==' ') { 
	 * startIndex++; } 
	 * 
	 * while(str.charAt(endIndex)==' ') {
	 *  endIndex--; } 
	 *  
	 * //指定索引值截取子串
	 * String result = str.substring(startIndex, endIndex+1); 
	 * 
	 * return result;
	 * 
	 * 
	 * }
	 */
	
	// 获取文件名;
	/*
	 * public static String getFileName(String path) { 
	 * int index = path.lastIndexOf("\\");
	 * String fileName = path.substring(index + 1);
	 *  return  fileName;
	 *  }
	 */
	
	// 反转字符串内容;
	public static String reverse(String str) {
		//把字符串转成了字符数组
		char[] buf = str.toCharArray();
		//定义两个变量记录要 交换位置的元素索引值
		int startIndex = 0;
		int endIndex = buf.length - 1;
		while (startIndex < endIndex) {
			//交换位置
			char temp = buf[startIndex];
			buf[startIndex] = buf[endIndex];
			buf[endIndex] = temp;
			//
			startIndex++;
			endIndex--;
		}
		return new String(buf);   // 使用字符数组构建了字符串
	}
}

用于平时自己复习回顾,如有错误,欢迎指正

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值