JavaSE入门笔记(仅个人参考使用)

IDEA

关于自动保存
在这里插入图片描述

未保存提醒
在这里插入图片描述

让代码变亮点
在这里插入图片描述

Java

显示project快捷键alt+1

显示structure(查看类中的方法等)alt+7

Ctrl +P查看方法可传的参数等信息

*水平制表符>\t代表四个空格 *

win10画图

选中图形—>移动: CTRL+左键

常量:

输出字符常量要求有且只能有一个

变量:

int a=1;//这其实是两行代码:
//-->
int a;
a=10

因为int是默认的整型, 所以只要是数字运算, 你能得到的最小整型就是int.

算术运算符

a+=b	等价于 a=a+b
想要获取小数必须有浮点型参与运算
System.out.println(10 / 3.0);           3.3333335
System.out.println(10 / 3*1.0);	   3.0
        
获取该三位数的各个位数数字.
        /*
            规律:  例如: 1153
                个位:  153 / 1  % 10  = 3                  商15, 余3
                十位:  153 / 10 % 10 = 5
                百位:  153 / 100 % 10   = 1
         */
        int ge = num / 1 % 10;
        int shi = num / 10 % 10;
        int bai = num / 100 % 10;

三元运算符:

选择结构

if语句:

测试代码的小技巧, 测试3类值:

         正确的值
         非法值
         边界值 

break

break的作用是结束当前它所在的语句体,并不是结束整个main方法

for循环

循环中的初始条件,判断条件和控制条件都可以根据需求任意变化,不用执着于某个形式

数组和方法

  • 1.int类型数组, 元素默认值是: 0
    2.double类型的数组, 元素默认值是: 0.0
    3.boolean类型的数组, 元素默认值是: false
    4.String类型的数组, 元素默认值是: null

面向对象

  • 何为对象何为类? 我的理解是:类是雕塑,对象是生命
  • 面向对象的三大特征: 封装>继承>多态
  • 封装包含但不限于private

构造方法

  • 简单来说就是为了创建对象的
    没有构造方法时,可以通过调用成员变量的方式赋值,但比较麻烦,所以有了构造方法.
    不写构造,系统会默认给一个空参构造;
    如果写了一个带参构造,得自己补一个空参构造

继承

  • 如果一个类继承了父类,那么在创建这个类的对象时会在堆内存先开辟父类空间(即使没有new父类的对象)super代表了父类空间的标识但不是引用,因为没有new

static

  • static修饰的内容是跟类同时加载的,优先于对象和本类中的其他方法,所以在静态方法中调用静态方法是不能用 this. 和super. 调用的,所以静态类最好只通过 类名. 的形式调用

接口

成员特点:
接口中有且只能有常量或者抽象方法, 原因是因为:
•成员变量有默认修饰符:public static final
•成员方法有默认修饰符:public abstract
注意: 因为接口主要是扩展功能的, 而没有具体存在, 所以 接口中没有构造方法
记忆: JDK1.8的时候, 接口中加入了两个新的成员: 静态方法, 默认方法(必须用default修饰).

1.8新增
public static void jump() {
       
   }
public default void jump() {

    }

  • 导包两种格式:*和类名
  • 全类名=包名+类名
  • 不采用导包的方式该如何创建Scanner类呢?Java.util…
  • java.lang下的类直接用,不用导包

常用API:

Object类

  • equals方法传入的是Object类的对象
  • 注意: 实际开发中, 我们认为如果同一个类的两个对象, 各个属性值都相同, 那么它们就是同一个对象.

工具类:

  • 所有工具类构造方法私有化
  • 成员都用static修饰

Arrays类

属于工具类

Calendar类

Calendar是抽象类需要使用getInstance方法获取实例

集合:

长度可变,用来存储同类型的数据

接口与接口之间是继承关系

Collection:

collection包含:List集合Set集合
包含的常用方法:

public boolean add(E e) 添加元素.
        public boolean remove(Object obj) 从集合中移除指定的元素.
        public void clear() 清空集合对象
        public boolean contains(Object obj) 判断集合中是否包含指定的元素
        public boolean isEmpty() 判断集合是否为空
        public int size() 获取集合的长度, 即集合中元素的个数

List接口

List集合的元素特点是: 有序, 可重复, 元素有索引.
实现: ArrayList LinkedList…

List集合中的特有成员方法:
        public void add(int index, E element);   在指定的位置插入指定的元素
        public E remove(int index);              根据索引, 移除指定的元素, 并返回此元素.
        public E set(int index, E element)       修改指定索引处的元素未指定的值, 并返回修改前的元素.
        public E get(int index)                  根据索引, 获取其对应的元素.

    细节:
        上述的四个方法, 涉及到的索引如果不存在, 则会报: IndexOutOfBoundsException(索引越界异常)

List集合的子类

ArrayList

底层数据结构是数组

LinkedList

底层数据结构是链表

LinkedList的独有方法有哪些?
public void addFirst(E e) 往列表的开头插入指定的元素
public void addLast(E e) 往列表的末尾插入指定的元素
public E removeFirst() 删除列表中的第一个元素, 并返回被删除的元素
public E removeLast() 删除列表中的最后一个元素, 并返回被删除的元素.
public E getFirst() 返回列表的第一个元素
public E getLast() 返回列表的最后一个元素

Set接口

特点:接口,无序,唯一,无索引(不对外暴露)
如何实现:HashSet, TreeSet…

Collections工具类

常用方法:

sort(List list)
reverse(List list)
shuffle(List list)

Map

Map集合是双列集合

异常

思考题:编译期异常和运行时异常有什么不同(两点)

IO流:

  • (在不涉及到return时) try,catch中的代码如果有问题 在执行到有问题的部分会报错 然后跳出来继续执行try,catch之外的代码

P 359: 9分20秒,

1.在调用close后,流就变成了垃圾对象,需要进行回收,但是对于这种垃圾, GC第一次进行垃圾回收时,并不是直接回收 而是先做个标记 到第二次回收时间节点到了的时候进行二次标记,然后才会回收

2.而如果将对象标记为null,则GC会优先回收以节约资源

线程:

run方法有异常只能try不能抛
主线程就是main即Thread.currentThread()对应的线程
守护线程结束会有延迟是因为CPU切换需要时间

网络编程:

P315 14分:关于如何测试程序bug的方法之一(分段测试法)
一般来说没有客户端和服务器端交互的部分代码,不用写flush

反射_注解:

反射:

	反射指的就是在程序的运行期间, 通过==类的字节码文件对象==, 来使用类中的成员的一项技术,第一步永远是创建字节码文件对象

ClassLoader是抽象类
在这里插入图片描述

字节码文件对象也是对象,所以可以调用方法,只有类有字节码文件

Field 成员字段,变量(set一次只能设置一个值)
Constructor 构造器
Method 成员方法(invoke 调用激活)
上述三个,它们都是通过class类获得的

反射中创建对象:
公共构造创建空参对象,直接创造字节码文件对象然后newInstance就行了,Class创建对象只能传空参

私有构造创建带参对象需要Constructor,要加上暴力反射

Field,Method在使用私有成员时都需要暴力反射

类型E继承自Object,也就是说E的class文件就是Object的class文件

• 注解本质上就是一个接口,该接口默认继承Annotation接口
• AnnoationElement接口的方法被class,field,method,constructor实现

Properties

Properties 就是一个双列集合,且里面都是字符串类型的数据,拿出来要记得转型

XML:

xmlns :表示引入

<a:students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:a="http://www.itcast.cn/xml"
         xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
          >
   <a:student number="heima_0001">
      <a:name>tom</a:name>
      <a:age>18</a:age>
      <a:sex>female</a:sex>
   </a:student>

</a:students>

前三行是用来引入约束的
Xsi(XMLSchema-instance)是规定写法不用纠结,第一行相当于引入前缀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值