运算符

自增运算符

b = ++a; 先将a加1赋值给b

b = a++; 先将a赋值给b,再加1

三元运算符

数据类型 变量名 = 布尔类型表达式?结果1:结果2

尔类型表达式结果是 true,三元运算符整体结果为结果1,赋值给变量,否则为结果2。

循环

for 循环

do … while循环

方法重载

方法名相同参数不同

数据

Int a = int[3];

创建数据,jvm在堆内存中开辟空间,存储数组;数组在内存中会有自己的内存地址,以十六进制数表示;jvm将数组的内存地址复制给应用类型变量a;变量a保存的是数组内存中的地址,而不是一个具体的数值,因此称为应用数据类型。

在这里插入图片描述

面向对象的三大特点

面向过程:关注具体步骤,强调步骤
面向对象:不关注具体步骤,强调对象

  1. 封装

    • 将一些信息封装起来,外界不可见
  2. 继承

    • 继承是多态的前提,如果没有继承,就没有多态
    • 继承主要解决的是共性抽取的问题
    • 继承中的父类也叫基类,派生类;子类也叫派生类
    • 继承关系当中的特点:子类可以拥有父类当中的类容;子类还可以拥有自己专有的类容
    • 父类、子类成员方法重名的芳名规则:创建的对象是谁就优选访问谁
    • 变量重名的访问规则:局部变量直接写;本内中的成员变量:this. ;父类的成员变量: super.
    • 设计原则:对于已经投入使用的类,尽量不要进行修改。推荐定义一个新的类,类重复利用其中的共性,并且添加改动新的内容。
    • 子类无构造方法会默认调用父类构造方法。在类中调用父类构造方法时只能调用一次,且必须为第一条语句。
    • super的三种用法
      • 在子类的成员方法中,访问父类的成员变量
      • 在子类的成员方法中,访问父类的成员方法
      • 在子类的构造方法中,访问父类的构造方法
  3. 多态

    对象的多态性: 一个对象有多种形态

    在多态中,成员方法访问的规则是:看newd的是谁,就有选用谁,没有则向上找

    口诀:编译看左边,运行看右边。

    • 在代码中体现多态性,其实就一句话:父类引用指向子类对象

    格式:
    父类名称 对象名 = new 子类名称();
    或者
    接口名称 对象名 = new 实现类名称();

    Fu obj = new Zi();
    

    好处:

    无论右边new的时候缓存哪个子类对象,等号左边调用的方法都不会变化

    • instanceof 判断类名称

      // 对象 instanceof 类名称
      animal instanceof dog;  // 判断animal本来是不是dog
      

接口

接口就是一种公共的规范标准。编译后的字节码文件仍然为 .class

接口中可以有的内容:

  • 常量,
  • 必须使用 public static final 修饰,也可以省略
  • 接口中的常量必须进行赋值,不能不赋值
  • 接口中的常量的名称,使用完全大写的字母,用下划线进行分割
  • 抽象方法
    • public abstract 返回值类型 方法名称(参数列表);public abstract可以省略
    • 实现类格式: public class 实现类名称 implements 接口名称{};实现类中必须重写接口中的所有方法

一个标准的类

通常包括下面四个构造方法

1. 所有的成员变量都要使用private关键字修饰

2. 为每一个成员变量编写一对儿Getter/Setter方法

3. 编写一个无参数的构造方法

4. 编写一个全参数的构造方法

这样标准的类也叫做Java Bean

Java常用api

  1. Scanner 从键盘读取数据

    Scanner sc = new Scanner(System.in);

    int a = sc.nextInt();

  2. Random类 ,生成随机数

    Random r = new Random();

    int number = r.nextInt(n); n代表了范围,左闭右开区间,[0,n)

  3. ArrayList 大小可变的数据

    泛型只能是引用类型,不能是基本类型

​ 常用方法

  1. Arrays 此类包含用来操作数组的各种方法

    Arrays.sort(arr) 排序

    Arrays.tostring(arr) 数据类容转为字符串

    Arrays.toCharArray() 字符串转换为字符数组

  2. 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。

  3. 静态代码块
    执行唯一一次
    静态内容总是优先先于非静态内容,所以静态代码块比构造方法先执行。
    用途:用来一次性地对静态成员变量进行赋值

  4. String

    • 判断方法

      • pubic boolean queals(Object anObject):将字符串与指定对象进行比较
      • pubic boolean quealsIgnoreCase(String anotherString):将字符串与指定对象进行比较,忽略大小写
    • 获取功能的方法
      • public int length () :返回此字符串的长度。
      • public String concat (String str) :将指定的字符串连接到该字符串的末尾。
      • public char charAt (int index) :返回指定索引处的 char值。
      • public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
      • public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
      • public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
    • 转换功能的方法
      • public char[] toCharArray () :将此字符串转换为新的字符数组。
      • public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
      • public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。
    • 分割功能的方法
      • public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
  5. Objects

    JDK7添加了一个Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。

    在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。方法如下:

    • public static boolean equals(Object a, Object b):判断两个对象是否相

    • 源码如下

      public static boolean equals(Object a, Object b) {  return (a == b) || (a != null && a.equals(b));
      }
      

集合

java.util.Collection接口

​ 所有单列集合的最顶层的接口,里边定义了所有单列集合共性的方法

​ 任意的单列集合都可以使用Collection接口中的方法

  1. 共性的方法:

    • public boolean add(E e): 把给定的对象添加到当前集合中 。
    • public void clear() :清空集合中所有的元素。
    • public boolean remove(E e): 把给定的对象在当前集合中删除。
    • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
    • public boolean isEmpty(): 判断当前集合是否为空。
    • public int size(): 返回集合中元素的个数。
    • public Object[] toArray(): 把集合中的元素,存储到数组中。
  2. Iterator接口

    //使用迭代器 遍历   每个集合对象都有自己的迭代器Iterator<String> it = coll.iterator();//  泛型指的是 迭代出 元素的数据类型while(it.hasNext()){ //判断是否有迭代元素String s = it.next();//获取迭代出的元素System.out.println(s);}
  3. List接口.

    • 有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)

    • 有索引,包含了一些带索引的方法

    • 允许存储重复的元素

    • List接口中带索引的方法(特有)

      • public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。

      • public E get(int index):返回集合中指定位置的元素。

      • public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。

      • public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

        注意:

        ​ 操作索引的时候,一定要防止索引越界异常

        ​ IndexOutOfBoundsException:索引越界异常,集合会报

        ​ ArrayIndexOutOfBoundsException:数组索引越界异常

        ​ StringIndexOutOfBoundsException:字符串索引越界异常

    • 创建List集合对象,使用多态

        List<String> list = new ArrayList<>();
      

      java.util.ArrayList集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。单线程

    • LinkedList集合

      • java.util.LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。

      • LinkedList集合的特点: 多线程

      • 常用方法

        • public void addFirst(E e):将指定元素插入此列表的开头。
        • public void addLast(E e):将指定元素添加到此列表的结尾。
        • public E getFirst():返回此列表的第一个元素。
        • public E getLast():返回此列表的最后一个元素。
        • public E removeFirst():移除并返回此列表的第一个元素。
        • public E removeLast():移除并返回此列表的最后一个元素。
        • public E pop():从此列表所表示的堆栈处弹出一个元素。
        • public void push(E e):将元素推入此列表所表示的堆栈。
        • public boolean isEmpty():如果列表不包含元素,则返回true。
  4. Set接口

    java.util.Set接口和java.util.List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。

    特点:

    1. 不允许存储重复的元素

    2. 没有索引,没有带索引的方法,也不能使用普通的for循环遍历

  5. HashSet 集合

    ava.util.HashSetSet接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的(即存取顺序不一致)。java.util.HashSet底层的实现其实是一个java.util.HashMap支持

  6. Collections

    • java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:
    • public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。
    • public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。
    • public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。
    • public static <T> void sort(List<T> list,Comparator<? super T> ):将集合中元素按照指定规则排序。

异常

指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。

在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。

,异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Errorjava.lang.Exception,平常所说的异常指java.lang.Exception

Throwable体系:**

* Error:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。

* Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。好比感冒、阑尾炎

Throwable中的常用方法:

  • public void printStackTrace():打印异常的详细信息。

包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使用printStackTrace。

  • public String getMessage():获取发生异常的原因。

提示给用户的时候,就提示错误原因。

  • public String toString():获取异常的类型和异常描述信息(不用)。

异常处理:
Java异常处理的五个关键字:try、catch、finally、throw、throws

声明异常throws : 遇到异常时,中断程序
声明异常:将问题标识出来,报告给调用者。如果方法内通过throw抛出了编译时异常,而没有捕获处理(稍后讲解该方式),那么必须通过throws进行声明,让调用者去处理。

try-catch的方式就是捕获异常。

  • 捕获异常:Java中对异常有针对性的语句进行捕获,可以对出现的异常进行指定方式的处理。
    finally:有一些特定的代码无论异常是否发生,都需要执行。

父类抛出异常,子类重写父类方法时,抛出的异常只能是个父类异常的子类,一般父类、子类异常相同。

编译时异常: 程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

运行期异常: 这意味着程序存在bug,如数组越界,0被除,入参不满足规范…这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。

错误: 一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理

java基础(1)—1相关推荐

  1. Java基础入门语法和安装

    1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Un ...

  2. Java笔记整理-02.Java基础语法

    1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...

  3. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  4. Java基础概念性的知识总结

    属于个人的所学的知识总结,不是全面的 1.JDK.JRE和JVM三者的区别 01.JDK:(Java Development ToolKit)Java开发工具包,是整个Java的核心.包括了Java的 ...

  5. 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer www.cnblogs.com/J ...

  6. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  7. java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理

    原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...

  8. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

  9. [Spring 深度解析]第1章 Java基础

    第1章 ◄Java基础► 在学习Spring之前我们需要对Java基础语法有一定的了解,Java中最重要的两个知识点是注解和反射.注解和反射在Spring框架中应用的最广泛.掌握注解和反射,有助于后面 ...

  10. 清华学长免费分享Java基础核心知识大总结(1)

    自学Java,如果觉得看<Java编程思想>或者<Core Java>等之类的"圣经"觉得内容太多,一下子吃不透的话,不妨看看这本<Java基础核心总 ...

最新文章

  1. Lambda表达式的无参数无返回值的练习
  2. intellij中出現org.apache.hadoop.fs.FSDataInputStream解決方案
  3. BZOJ 4808: 马(二分图最大点独立集)
  4. AI技术说:人工智能相关概念与发展简史
  5. php2.3.2,自动加载 - ThinkPHP3.2完全开发手册
  6. 深度学习硬件:CPU 和 GPU 动手学深度学习v2
  7. QGIS安装与使用教程
  8. DIY 3D打印机测试
  9. 了解一下银行科技信息岗
  10. 材料科学基础考研计算机,2017年西安工业大学计算机学院805材料科学基础考研仿真模拟题...
  11. pigeon-remoting模块功能分析
  12. ArcBlock世界第一区块链基石生态系统
  13. 北京工程测量乙级资质申请流程
  14. MySQL数据库——多表查询介绍
  15. antd中的disabledDate不可选择时间的处理-包含或不包含当前选择-moment
  16. 微信小程序不同分享效果的实现
  17. 今年有多少周?今天是今年的第几天?第几周?
  18. Resharper使用详解(转)
  19. 【UE4】在 Content 目录中查看、筛选资产
  20. 电脑摄像头未能创建连接服务器,win8打开摄像头提示“未能创建视频预览,请坚持设备连接”怎么办...

热门文章

  1. vm内核参数之内存脏页dirty_writeback_centisecs和dirty_expire_centisecs
  2. windows虚拟机安装Mac OS系统(操作图解)
  3. 用Python实现远程控制电脑关机(啧啧啧)
  4. matlab分类算法代码,实现几种经典的分类算法(ID3,C4.5等)
  5. 除氨氮树脂在垃圾渗滤液行业的应用优势
  6. 计算机专业在清华学几年,考上清华退学,就为再考清华计算机?
  7. 给博客增加豆瓣观影和阅读
  8. 关于HIPO和IPO
  9. 通过,aria-describedby属性,获取元素,并设置样式
  10. 奶爸日记15 - 轮船风景