java学习日记 day1

  • 前言
    今天起学校带队去实训,实际上就是换个地方去上课啦,主要是学Java,老师让每天记录学习成果,想着既然要记录不如直接写个博客什么的,所以开坑

  • Java的基本操作
    今天讲的主要是一些基本知识,我就不系统的该概述了,只写一些值得注意的知识点

  • 八种数据类型与引用型
    八种数据类型:byte,int,long,short,float,double,boolean,char
    没什么好说的,和c++什么的差不多
    但是Java是一门面向对象的语言,所以对这些数据类型的高级操作往往都得转换成引用型
    值得注意的是int->Integer,char->Character,其他的直接大写就行了,主要是为了将它们转换成对象,转换成对象以后可以更方便的执行各种操作,可以应用各种函数。

  • 关于String
    字符串的处理是一门语言入门最多的话题了,开始学C的时候搞了不少操作,比如用数组对字符串进行处理,如删除某一段,插入某一段什么的,不过在Java里字符串处理相当简单,下拉列表中有无数可以用的函数,这里就直接把上课笔记做的代码什么放一下吧。

package aaaa;


public class StudyString {
//字符串类型的学习
	public static void main(String[] args) {
		
		//字符串拼接:str.concat()函数
		String str1="Hello World!";
		System.out.println(str1.length());
		String str2=new String("and");
		String str3=str1+str2;
		String str4=str1.concat(str2);
		System.out.println(str3+" "+str4);
		//截取:str.substring()函数,分为两种变量和一种变量,结束位置可以.langth-1(从0开始数
		String str5=str1.substring(6, str1.length()-1);
		System.out.println(str5);
		//查找:1找出给定字符/字符串的位置
		int i=str1.indexOf("ll");//从前往后查
		int j=str1.lastIndexOf("r");//后往前查
		System.out.println(i+" "+j);
		//给定位置找出字符串
		char c=str1.charAt(i);
		System.out.println(c);
		//切割
		String xiyou="唐僧;孙悟空;猪八戒;沙僧";
		String[] names=xiyou.split(";");//切割完成;
		//一个高效的for循环,foreach
		/*
		 * foreach的操作:for(类型 变量名:便利的对象)
		 * 实际的一个案例:https://www.cnblogs.com/zpoor/p/7653135.html
		 */
		for (String string : names) {
			System.out.println(string);
		}
		
		//比较
		String str7=("Hello World!");
		String str6=new String("Hello World!");
		System.out.println(str1==str7);//true
		System.out.println(str1==str6);//false
		System.out.println(str7.equals(str6));//equal函数只比较内容,内容相同即相同
		/*
		 * str1和str7指向了一个常量值
		 * str6是申请了另外的一块空间,在常量池中不是一块内存区域,所以再去引用时就不相同了
		 */
		//替换 1.替换第一次出现的 replaceall:替换所有出现过的
		String str8=str1.replace("l", "0");//全部替换
		String str9=str1.replaceFirst("l", "0");//替换了第一次
		System.out.println(str8+" "+str9);
		//Stringbuilder+Stringbuffer 并发不安全与并发安全,前者单线程后者多线程
		//https://baijiahao.baidu.com/s?id=1629804867201303563&wfr=spider&for=pc
		//stringbuilder的用法:https://blog.csdn.net/qq_35187119/article/details/81280100
		//https://www.cnblogs.com/songsongblue/p/9798651.html
		StringBuilder str10=new StringBuilder();
		str10.append("Hello world");
		str10.insert(5, " java");
		System.out.println(str10.toString());
		//删除
		str10.delete(1, 4);
		System.out.println(str10.toString());
		//翻转
		System.out.println(str10.reverse());
		
		
		 
	}
}
关于String,和以往不同的是引入了StringBuilder和Stringbuffer,它们的主要作用是提升操作的效率,因为用String进行运算的时候,会产生多个中间的String变量,会产生很多垃圾,
而用Stringbuilder和Stringbuffer运算是对其本身进行操作,效率更高,不会产生过多垃圾
而Stringbuffer在牺牲效率的前提下解决了多线程操作可能造成的字符串混乱问题,在其加上了锁,运算更安全。
值得一提的是,是Stringbuffer先出现的,而Stringbuffer是把前者的锁去掉了,所以两者用法基本一样而后者效率更高。
  • foreach
    这个也是之前的学习中没接触过的东西,实际上只是for循环的一个变种,它可以方便的对分组进行处理,格式是for(数据类型 变量名:被分配的数组){}它的应用也有一定的限制,这个可以在csdn其他人博客上看

  • Java的特殊之处
    c++一个子类可以有多个父类,而Java一个子类只有一个父类,所以要引入别的需要接口,其他函数的调用我个人觉得和c#很像,都是函数名 变量名=new函数名();酱紫的。

你可能感兴趣的:(学习总结)