Java

public String addSparator(String str, String separator) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            if (i == str.length() - 1) {
                sb.append(str.charAt(i));
            } else {
                sb.append(str.charAt(i));
                sb.append(separator);
            }
        }
        return sb.toString();
    } 

1. switch语句格式:

  switch(表达式){

  case 值1:

    语句体1;

    break;//break可以省略,但会出现case穿透现象,建议不省略

  case 值2:

    语句体2;

    break;

  ...

  default://对不正确的情况给出提示,可以省略,建议不省略,可以在任意位置,但建议在最后

    语句体n+1;

    break;

  }

 表达式可以是byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以可以是String。

 ------------------------------------------------------------------以下是学习慕课网的视频Java----------------------------------------------------------------------------------------------------------

1. 封装---------------------------------------------------------------------------------------------


加了private 对象就不能直接访问到属性了,而是需要通过get set 方法来改变

2. Java中的包就像是 文件夹
系统中的包:

3. 访问修饰符

钱包:自己,屋子里的,屋子里的和儿纸,艾瑞巴蒂
4. Java中的this关键字

5. Java中的内部类

问:什么是内部类呢?

答:内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。

问:那为什么要将一个类定义在另一个类里面呢?清清爽爽的独立的一个类多好啊!!

答:内部类的主要作用如下:

1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

问:内部类有几种呢?

答:内部类可分为以下几种:

  • 成员内部类
  • 静态内部类
  • 方法内部类
  • 匿名内部类

// 创建外部类对象

           HelloWorld hello = new HelloWorld();

        // 创建内部类对象  (静态内部类就可以直接创建了)

           Inner i = hello.new Inner();

        // 调用内部类对象的方法

           i.show();

插播一条非广告: javac命令之后 形成字节码文件

6.  Java中的成员内部类

System.out.println("外部类中的name:" +   HelloWorld.this.name    );

7.  Java中的静态内部类

(1)、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 

(2)、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

(3)、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();

 8. Java中的方法内部类

方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。

一定要注意哦:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。

9. 继承  extends  ---------------------------------------------------------------------------------

 

主函数里面:

 

结果:

 

这就说明当我们创建一个子类对象的时候,初始化顺序为:

10.  方法的重写

 

插播两条:方法重写与方法重载不同,方法的重载是方法的参数个数或种类或顺序不同,方法名相同。
方法重写是要注意权限的问题,子类中的权限不能小于父类的权限,当父类的权限为private时,子类无法继承。也就无法产生所谓的重写。(修饰符高低:private < 默认修饰符 < public)
11. final关键字

12.  super关键字

 

如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。

如果显示的调用构造方法,必须在子类的构造方法的第一行。

子类的构造的过程当中必须调用其父类的构造方法。

如果子类的构造方法中既没有显示的调用父类的构造方法,而父类又没有午参的构造函数,则编译出错。

13. Java中的Object类I

(1) toString()方法

所以要输出对象的属性,就需要重写toString()方法

(2)    equals()方法

比较的是对象的引用是否指向同一块内存地址。

== 比较两个引用类型的时候也是比较的地址值

两个对象的类型是否相同。

重写完之后就是比较的是比较字符串中所包含的内容是否相同。

14. 多态 (继承是多态的实现基础) ----------------------------------------------------------
(1) 引用多态

(2) 方法多态

就是new一个父类的子类对象。

15.  多态中引用类型转换

(1)向上类型转换(隐式/自动类型转换),是小类型到大类型的转换

(2)向下类型转换(强制类型转换),是大类型到小类型

(3)instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题。

16.  Java中的抽象类

应用场景:

 

作用:

使用规则:

abstract class

17. 接口

若我们没有写,系统会自动给我们加上。

 

匿名内部类1:

匿名内部类2:

18. UML (这个部分好像比较薄弱)

用例图:

 

序列图:

类图:(类和类之间的关系)

- 表示私有的
+ 表示公有的

PowerDesigner 会根据我们设计的图形自动生成Java 代码。

19. 人类 中国人 美国人
(1) 人类里面写了say 中国人和美国人继承
(2) 人类定义为抽象类 public abstract class APerson
我们使用抽象类来描述一个类的规则更合理一些。
20. 项目练习

 

项目分析:

(1)    数据模型分析

 

(2) 业务模型分析

(3)    显示和流程分析

参考系统:

 

------------------------------------------- 第二季 END ------------------------------------------

  1.  异常 简介

捕获到的异常可以在当前方法的catch块中处理,也可抛出给调用者去处理。

22. Java中字符串的不变性

23. Java中String类的常用方法

24. Java中的String类常用方法

 

==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象

equals(): 比较存储在两个字符串对象中的内容是否一致

PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节1 个英文字符存储需要 1 个字节。所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89” ,而英文字母 “J” 对应 “74” 。同时,我们还发现汉字对应的字节值为负数,原因在于每个字节是 8 位,最大值不能超过 127,而汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示。(关于编码,我们在后面课程中会详细介绍,小小期待哦~~)

str.charAt(i) ==’a’  字符比较用等号

25. Java中的StringBuilder类的常用方法

26. Java 中的包装类

 

27. Java中基本类型和字符串之间的转换
其中,基本类型转换为字符串有三种方法:
1. 使用包装类的 toString() 方法
2. 使用String类的 valueOf() 方法
3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

将字符串转换成基本类型有两种方法:

1. 调用包装类的 parseXxx 静态方法

2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

28.  使用Date和SimpleDateFormat类表示时间

在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用:

使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下:

其中, Wed 代表 Wednesday (星期三), Jun 代表 June (六月), 11 代表 11 号, CST 代表 China Standard Time (中国标准时间,也就是北京时间,东八区)。
从上面的输出结果中,我们发现,默认的时间格式不是很友好,与我们日常看到的日期格式不太一样,如果想要按指定的格式进行显示,如 2014-06-11 09:22:30 ,那该怎么做呢?
此时就到了 java.text 包中的 SimpleDateFormat 类大显身手的时候了!!可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。
1. 使用 format() 方法将日期转换为指定格式的文本

代码中的 “yyyy-MM-dd HH:mm:ss” 为预定义字符串, yyyy 表示四位年, MM 表示两位月份, dd 表示两位日期, HH 表示小时(使用24小时制), mm 表示分钟, ss 表示秒,这样就指定了转换的目标格式,最后调用 format() 方法将时间转换为指定的格式的字符串。
运行结果: 2014-06-11 09:55:48
2. 使用 parse() 方法将文本转换为日期

代码中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字符串的日期格式,调用 parse() 方法将文本转换为日期。
运行结果:

一定要注意哦:
1、 调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理
2、 使用 Date 类时需要导入 java.util 包,使用 SimpleDateFormat 时需要导入 java.text 包
任务
亲, Date 类和 SimpleDateFormat 类的使用您掌握了吗?让我们来检验下吧。
功能:实现将日期转换为指定格式的文本,将文本转换为日期
请在编辑器中的第 15、18、27 行中将代码填写完整
运行结果:

29. Calender类的应用
Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。
java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();
那么如何使用 Calendar 获取年、月、日、时间等信息呢?我们来看下面的代码:

其中,调用 Calendar 类的 getInstance() 方法获取一个实例,然后通过调用 get() 方法获取日期时间信息,参数为需要获得的字段的值, Calendar.Year 等为 Calendar 类中定义的静态常量。
运行结果:

Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。如下所示:

运行结果:

关于如何获取昨天的当前时刻:
public static void main(String[] args) {
  Calendar cal = Calendar.getInstance();
  cal.add(Calendar.DATE, -1);
  Date time = cal.getTime();
  System.out.println(time);
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
  String date = sdf.format(time);
  System.out.println(date);
}

30. 使用Math类操作数据
Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();

运行结果:

31. 集合框架

Collection接口

List   排列有序,可以重复

Queue  排列有序,可以重复

Set  排列无序,不可重复

Map接口

32. Collection接口

关于下标越界

list.addAll(集合对象);把一个集合添加到另一个集合的队尾位置
list.addAll(index,集合对象);把一个集合添加到另一个集合的指定位置
Arrays.asList(数组):把一个数组转换成List集合
list的remove方法 removeall方法

33.  泛型

 34. set方法只能用foreach方法和iterator方法,不能使用set方法,set是无序的不可重复的。

35. Map和HashMap的简介
查看API文档就好


一般来说HashMap的存取顺序是不一致的,但是LinkedHashMap可以做到这点,TreeMap也可以做到

Map中通过containsKey()方法和containsValue()方法来判断键和值是否存在
Map 中对对象进行了 Key 标记,通过 get(Key)可以取得对应的对象
Map 的containsValue()方法的参数是 Object 对象,因为Map 的 Value 值是对象元素
Map 的containsKey()方法取得 Map 映射的 Key 值
List中的contains()方法借Map中的containsValue()方法调用equals()方法来进行比较。所以要重写Hashcode和equals方法
跟 List 的 contains()方法一样,Map 中的 containsValue()方法也会调用每个 Value 值的 equals()方法去和参数对象比较

36. Arrays工具类 Collections工具类

越努力越幸运~ 加油ヾ(◍°∇°◍)ノ゙
原文地址:https://www.cnblogs.com/utomboy/p/6979303.html