1.对于与c++的区别来说,在通过循环结构读取数组中的元素来说:for-each专门读取数组或集合中的所有元素,不能修改数组元素的值
for(int m:a)特点:非常简便,且速度非常快,用于展示数组中的元素。
2.前期的学习当中,基本的知识和c++相差不是特别多,但是到了,类的思想,差距开始多了起来,例如专有名词的使用,例如内存分配,例如空间的使用和一些抽象类的重新定义与c++相差还是较大的。
(1)抽象方法,抽象类 abstract修饰方法与c++不同,virtual,定义抽象方法的时候,类也要定义抽象类!abstract定义抽象方法的同时这个类也要定义抽象类。
(2)抽象类不能实例化,不能new来 实例化抽象类,也就是不能再堆当中给其继续分配内存。
(3)抽象类可以包含属性,方法,构造方法,但是构造方法不能用来new实例,只能用来被子类调用
(4)抽象类只能用来被继承,抽象方法必须被子类实现。抽象类为子类提供规范的模板。
(5)出现了新名词,也是面向类与对象的重要知识点--接口!接口!比抽象类还要抽象,接口要用interface,例如 public interface 类名,接口里面所有的方法全是抽象方法,不需要在定义,规范和具体实现的分离。接口可以多继承!唯一可以多继承的类,在c++中类可以多继承,但是在java中只有接口才可以多继承。接口里面的数据都是常量,无法改变。子类通过implements来实现接口,与c++不同之处在于此。在实现里面,必须要重写接口里面的方法。
(6)内部类,成员内部类(非静态内部类,静态内部类),匿名内部类,局部内部类,内部类可直接访问外部类的数据成员 。
接下来学习了几个特别重要的类!
1.sring类,不可变字符序列。
string 类的常用方法:1.charAt(a)提取下标为a的字符。
2.length字符串的长度
3.equals(s2)比较两个字符串是否相等
4.indexOf(“字符串”)字符串中是否包含该字符串
5.replace(' 原字符串 ',新字符串)
6.s1.substring(4)提取字符串,从下标为4的开始到字符串结尾结束s1.substring(4,7)提取字符串,4到7不包含7
数组的拷贝:System.arrarycopy(被拷贝的对象,开始的位置,目标数组,拷贝到目标数组什么位置,长度)例如System.arraycopy(s1,2,s2,6,3)
Arrays类:
1.Arrays.toString(数组名)完全打印数组中的元素将里面的内容打印出来
2.Arrays.sort(数组名)从小到大进行排序
3.Arrays.binarySearch(数组名,元素),查询该元素是否在数组中如果找到了,返回索引,如果找不到,返回-1
冒泡排序算法
for(int i=0;i
for(int j=0;j
if(values[j]>values[j+1]){
temp=values[j];values[j]=values[j+1];valuse[j+1]=temp;
}
}
}
二分法查找.折半检索
public class User
{
public static void main(String[] args)
{
int []arr= {30,20,50,10,80,9,7,12,100,40,8};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
System.out.println(search(arr,40));
}
public static int search(int arr[],int value)
{ int low=0;
int high=arr.length-1;
while(low<=high)
{
int mid=(low+high)/2;
if(value==arr[mid])
{
return mid;
}
if(value>arr[mid]) {
low=mid+1;
}
if(value
high=mid-1;
}
}
return -1;
}
}
包装类,有8个类型
* Integer a=new Integer(10),在堆里面生成了一个对象。
* Integer b=Integer.valueof(30)
* int c=b.intValue()
* 把包装类对象转成基本数据类型
* 自动装箱和拆箱,自动装箱:基本类型的数据处于需要对象的环境中时,会自动转为对象
本周学习的java内容逐渐上了难度,但是通常的思想和正在学习的c++还是基本相同,有几个新出现的名词和概念需要特别理解,在下周中会去加强理解,java基础也开始慢慢进入了比较难的阶段,自己也会继续加油,攻克困难!



