JAVA笔记(旧)

JAVA笔记

基础语法

注释

  1. 单行注释:只能注释一行文字。用法:// + 注释
  2. 多行注释:能注释一段文字。用法:/+ 内容 +/
  3. 文档注释:javaDoc.用法:/** + 内容 + */

标识符和关键字

截图
标识符是大小写敏感的。

数据类型

截图
定义字符串用String,它是一个类。

数据类型扩展

整数拓展

进制
二进制0b 十进制0 八进制 十六进制0x

int i = 10;
int i1 = 010;
int i2 = 0x10;
System.out.println(i);
System.out.println(i1);
System.out.println(i2);

截图

浮点数拓展

flout double
少用浮点数进行比较
浮点数有舍入误差
结果为大约数
截图
截图

字符拓展

涉及编码问题
Unicode编码 占两个字节
97=a 65=A
表示范围
U0000-UFFFF
截图
截图

转义字符

  1. \t 制表符
  2. \n 换行
    截图
    截图

布尔值扩展

刚开始用第一种
熟悉了用第二种

boolean home = true;
    if (home==true){
        System.out.println("======================================");
    }//第一种
    if (home){
        System.out.println("======================================");
    }//第二种

代码要精简易读。

类型转换

低————————高
byte->short->char->int->long->float->double

  1. 值的大小超出数据类型所规定的范围会数据溢出。
  2. 强制转换 (类型)变量名 高————低
  3. 自动转换 变量名 低————高

注意点

  1. 不能对布尔值进行转换
  2. 不能把类型转换为不相干的类型
  3. 在把高容量转向低容量的时候强制转换
  4. 转换时可能存在内存溢出或精度问题
    jdk7新特性,数字间可加下划线

变量

定义:可以变化的量
三要素:变量名,变量类型,作用域。

注意

  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  2. 变量名必须是合法标识符。
  3. 变量声明必须是完整的语句,每个声明结尾要以分号结束。

变量作用域

关键词:static

  1. 类变量
    截图

  2. 实例变量(在类里面,方法外面。变量类型,变量名字)截图

  3. 局部变量(在方法里面,必须声明和初始化值)截图

  4. 变量初始值为0,0.0,0000
    布尔值初始值为false
    除了基本类型,其余值都为null

常量

final 常量+值

命名规范

  1. 所有变量,方法,类名,见名知意
  2. 类成员变量:首字母小写,驼峰原则。除了第一个单词意外,后面的单词首字母大写
  3. 局部变量:同类成员变量
  4. 常量:大写字母和下划线
  5. 类名:首字母大写,驼峰原则
  6. 方法名:同类成员变量。

运算符

算术:+ - / ++ --
赋值:=
关系:> < == >= <= != instanceof
逻辑运算符:&& || !
位运算符:& | ^ ~ >> << >>> (了解)
条件:? :
扩展运算:+= -=
= /=
ctrl+d:复制当前行到下一行。
计算时有long型,结果为long型
没有其余为int类型。
cast:转换
取余,也叫模运算。
a++:先输出a,再自增1
++a:先加一再输出a

Java doc

  1. @author 作者名
  2. @version 版本号
  3. @since 指明需要最早使用的jdk版本
  4. @param 参数名
  5. @return 返回值情况
  6. @throws 异常抛出情况

流程控制

  1. 用户交互Scanner
    1. 类名 java.util.Scanner
next()
nextLine()
//获取输入字符串
hasNext()
hasNextLine()
//判断是否还有输入数据
  1. 数组
    1. 声明一个数组
      例:int[] nums;
    2. 创建一个数组
      例:nums = new int[10]; (中括号里是数组的大小数量)
    3. 获取数组的长度
      例:nums.length

内存

  1. 存放new的对象和数组
  2. 可以被所有线程共享,不会存放别的对象引用

  1. 存放基本变量类型(也包含这个基本类型的数值)
  2. 引用对象的变量(会存放这个引用在堆里面的具体地址)

方法区

  1. 可以被所有线程共享
  2. 包含了所有的class和static变量

错误

  1. ArrayIndexOutOfBoundsException:(数组下标越界异常)

数组三种初始化状态

  1. 静态初始化
    int[] a={1,5,2,4,6,3};
    一旦创建长度跟括号内元素个数有关,且确定。
  2. 动态初始化
    int[] a=new int[10];
    a[1]=8;
    a[2]=2;
  3. 数组的默认初始化
    初始化值为0;

数组四个基本特点

基本特点

  1. 其长度是确定的。数组一旦被创建,它的大小就不可以被改变。
  2. 其元素必须是相同类型,不允许出现混合类型。
  3. 数组中的元素可以是任意数据类型,包括基本类型和引用类型。
  4. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

小结

  1. 数组是相同数据类型(数据类型可以为任意类型)的有序集合。
  2. 数组也是对象,数组元素相当于对象的成员变量
  3. 数组长度是确定的,是不可改变的。如果越界,则报错:ArrayIndexOutOfBoundsException:(数组下标越界异常 )。

面向对象

初识面向对象

  1. 物以类聚,分类的思维模式
  2. 属性+方法=类
    对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。

什么是面向对象

  1. 面向对象编程(oop)
  2. 本质:以类的方式组织代码,以对象的组织(封装)数据
  3. 抽象(类似提取)
  4. 三大特性
    1. 封装
    2. 继承
    3. 多态
  5. 从认识来考虑,先有对象后有类
  6. 从代码运行考虑,先有类后有对象

类与对象的关系

  类是一种抽象的数据类型,它是对某一类事物整体描述或定义,但是并不能代表某一个具体的事物
  对象是抽象概念的具体实例

创建与初始化

  1. 使用new关键字船创建对象的时候,除了分配内存空间,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
  2. 构造器特点:
    1. 必须和类名字相同
    2. 必须没有返回类型,也不能写void
  3. 构造器的两个作用
    1. 使用new关键字,本质是在调用构造器
    2. 有参构造:一旦定义有参构造,无参就必须显示定义

定义了有参构造,如果想使用无参构造,显示的定义一个无参的构造。

创建对象内存分析

内存图:
内存

小结:类与对象

  1. 类是一个模板,抽象,对象是一个具体的实例。
  2. 方法,定义,调用
  3. 对应的引用:
    • 引用类型:基本类型(8)
    • 对象是通过引用来操作的:栈----》堆
  4. 属性:字段,成员变量。
    • 默认初始化:
    • 数字:0
    • char:u0000
    • boolean:false
    • 引用:null
    • 赋值:
    • 修饰符 属性类型 属性名=属性值
  5. 对象的创建和使用
    • 必须使用new关键字创造对象 构造器
    • 对象的属性
    • 对象的方法
    • 静态的属性 属性
    • 动态的行为 方法

封装

  1. 该露的露该藏的藏
    程序设计要求“高内聚,低耦合”。高内聚指类的内部数据操作细节自己完成,不允许外部干涉;低耦合指尽暴露少量的方法给外部使用。
  2. 封装(数据的隐藏)
    通常,应禁止直接访问一个对象中数据的直接表示,而应通过操作接口来访问,这称为信息隐藏
    相关关键字:private(私有)
    set(赋值)
    get(获得)

封装的作用

  1. 提高程序安全性,保护数据。
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 增加系统可维护

一句话:属性私有 get/set

继承

super注意点:

  1. super调用父类的构造方法,必须在构造方法的第一个
  2. super必须只能出现在子类的方法或者构造方法中
  3. super和this不能同时调用构造方法

与this的区别:
  代表的对象不同 :
    this:本身调用这个对象
    super:代表父类对象的运用
  前提
    this:没有继承也可以使用
    super:只能在继承条件下使用
  构造方法
    this():本类的构造
    super():父类的构造

posted @   TeFantasy  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示