JavaSE基础

概念:

1)8种基本数据类型:byte,short,int,long,double,float,boolean,char。

2)  ASCLL码表:A:65        a:97 。

3)类型转换:自动类型转换 & 强制类型转换。

数组:

特征:1)存放多个数据类型一致的数据

           2)元素下标从0开始

           3)数组长度固定,一旦定义后,不可改变 。

运算符:

1)算数运算符 : + - * /  % 加减乘除,取余。

2)赋值运算符 : = 赋值 ,+= 加后赋值,-= 减后赋值 , *= 乘后赋值,/= 除后赋值 , %= 取余后赋值。

3)比较运算符 : == ,!= ,>,>=,<= 。

4)逻辑运算符 : && , || ,! 。

for循环:

1)初始变量,2)终止循环的条件,3)自变量。

2)i++: 先参与表达式,再执行自增。

3)++i :先自加,再参与表达式。

String 字符串操作:

1)spilt() 操作,分割字符串:传进去一个字符串(分隔符),将字符串分割返回数组。

2)subString() ,截取字符串 :subString(0,1) 包头不包尾

3)startWith() ,判断以....开始。

4)toCharArray : 将字符串转成字符数组,例如

Scanner(system.in) :键盘录入

break,continue,return : JavaSE基础_第1张图片

 while 循环 ,doWhile循环:与while循环不同的是,do while 循环把循环判断条件放到了下面,那也就也意味着循环至少会执行一次。

增强for循环:如果只是从一个数组中遍历数据的操作,普通的for循环中初始化i的变量没有实际意义,那么我们就可把for循环改为增强for循环更优雅的解决。

switch case : 

  • 只能用来做等值判断,无法做范围判断
  • 判断类型为:byte/short/int/char/String/enum枚举

二进制 :

1)二进制共有0,1两个数字,基数是2,逢二进一,数据在计算机底层就变为了二进制来执行。

2)原码,反码,补码。

3)位移运算符。

三元表达式:

 引用数据类型:String不是这8种基本数据类型中的,String , 数组,Arrays...叫做引用数据类型。

内存图:

JavaSE基础_第2张图片

 值传递和引用传递:

JavaSE基础_第3张图片

JavaSE基础_第4张图片

 1)值传递和引用传递的区别,基本数据类型作为参数传递时,属于值传递,它传递的数据不会因为别的方法的改变而发生改变。

2)引用传递传递的是引用的地址,指向的空间并没有发生改变,也就是说是共享同一块空间,如果别的方法改变了,那么它会跟着改变。

面向对象:

1)面向对象三大特征:封装,继承,多态 。

 this关键字:

       1)set 方法中我们会用this关键字来点出自己的成员,将形参的值设置给相应的成员。

       2)this关键字就相当于java给我们的类中设置的一个默认自己的对象,在自己类中可以点出自己的成员属性和方法。

       3)因为set方法形参名一般我们都会写的跟成员名一样,所以在赋值时,用于区分this.name 是成员,= name 就是形参!

static 关键字 静态:一般用于工具类。

继承  extends 子类继承父类非私有的方法,子类可以有自己的方法。

抽象 abstract : 1)抽象可以修饰类和方法前,称为抽象类和抽象方法

                            2)有抽象方法的类肯定是抽象类,抽象类中不一定只有抽象方法。

                            3)抽象方法只有定义,没有实现{},子类如果不是抽象类,必须重写父类中的抽象方法。

                            4)抽象类是不能实例化(new)。

多态:父类引用指向子类对象。

包装类:每个基本数据类型背后都有一个类,而这个类就是包装类。

              1)当我们遇到例如:String str = “123”; 需要转换为数字类型,我们就需要包装类才能帮助我们进行类型转换。

              2)Integer.parseInt(str)

JavaSE基础_第5张图片

 日期格式化类SimpleDateFormat:

JavaSE基础_第6张图片

 List集合Set集合 : 

集合:

  • 集合长度可变
  • 集合中的元素可以是不同的数据类型
  • 集合中的元素只能放引用类型

集合分为单列和双列:

    list :单列,可重复,有序集合, 索引从0开始,元素存取有序(有序指的是存入的顺序与输出的顺序一致)。  

    set :  1)单列,元素存储可以有序,可以无序(要看选择的具体子类 HashSet 无序 LinkedHashSet(有序),TreeSet(排序))

             2)没有索引,不能通过索引获取元素(即也不能使用普通for循环遍历)。

            3)不可以存储重复的元素。

 map :双列,key ------value 。

 ArrayList :ArrayList是List的实现类,底层使用的是数组结构来存储数据(数组的初始长度为10),所以,又称ArrayList为动态数组。

迭代器循环:

JavaSE基础_第7张图片

 线程安全的集合:Vector, Hashtable 。

 自然排序comparable ,比较器(comparator)    链接:Java 集合遍历&迭代器&比较_魂殿的博客-CSDN博客

Map集合:hashMap

hashMap 数据结构:key部分使用的数据结构为:数组+双向链表+红黑树 。HashSet使用的就是key部分进行存储的。

hashMap存储的特点:键值对映射关系,一个键对应一个值,键不能重复,值可以重复,键允许为空值,元素存取无序。

Collections :

Collections.sort(list);// 默认按照升序进行排列。

Collections.reverse(list); 倒叙排序。

Lambda表达式 :

传统写法:

 测试类中创建方法methon,传入接口NewPrinter对象,并在测试类中调用methon方法,并给接口NewPrinter创建对象,自动实现重写接口Pint方法。JavaSE基础_第8张图片

 Lambda改写:

 测试类中创建方法methon,传入接口NewPrinter对象,并在测试类中调用methon方法,使用Lambda表达式指向执行的代码。JavaSE基础_第9张图片

 Stream流:变量names为list集合

JavaSE基础_第10张图片

你可能感兴趣的:(java,开发语言)