Java学习笔记1(零碎笔记)——基础

目录

    • 命名
    • 流程控制
    • 方法
    • OOP
    • 异常
    • 其它

命名

变量、方法:驼峰命名
类:首字母大写+驼峰命名

流程控制

增强型for循环:

for(数据类型 名称 : 数组){(操作)
}

(意思是遍历数组,从数组的0号元素开始一个个赋值给冒号左边的)

方法

static,静态方法,跟着类一起加载,所以静态方法不能调用非静态方法,因为非静态方法是跟着对象的创建一起加载的。两者出现的时间顺序不一样。同时,可以直接用类名来调用静态方法。

命令行传参:给main方法传递参数
可变长参数:… 必须放在所有参数最后
递归:自己调用自己

构造方法:

  • 和类名相同

  • 没有返回值

  • 作用:

    1.new的本质在调用构造方法
    2.初始化对象的值

  • 注意:

    定义有参构造后,如果想使用无参构造,必须显式地定义一个无参构造
    IDEA创建构造函数的快捷键:Alt+Ins

  • 其他:
    this. = 意思:等号右边的是传进去的形参,this的那个是当前类自己的参数

OOP

  • 面向对象编程的本质是:以类的方式组织代码,以对象的形式封装数据

java中只有单继承 没有多继承

super:

  • super用来调用父类的东西 但是不能调用父类私有的东西
  • 子类被new了之后先调用了父类的构造函数,因为子类的构造函数里面第一行有一句隐藏代码super();
  • super只能出现在子类的方法或者构造方法中,否则会调用Object类
  • super和this不能同时调用构造方法

重写:
需要有继承关系,子类重写父类的方法

  1. 重写方法名必须相同
  2. 参数列表必须相同(否则变成重载)
  3. 修饰符:范围可以扩大但不能缩小。比如父类是private,子类可以是public。
  4. 抛出的异常:范围可以缩小但不能扩大。
  5. 为什么要重写:父类的功能子类不一定需要或者不一定适合
  6. 重写的快捷键:Alt+Ins:override

静态方法和非静态方法的区别:

静态方法:方法的调用只和左边定义的数据类型有关 如:

A a = new A();
a.test();//调用A类的方法
B b = new A();
b.test();//调用B类的方法

因为static修饰的方法归类所有,叫类的成员,不是对象的成员

非静态方法:只有非静态方法才能被重写

  • 简单来说:静态属于类,非静态属于对象。重写只有方法的重写,没有属性的重写。

多态:

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。(一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类或有关系的类))

1.多态只有方法的多态,属性没有多态
2.父类和子类,有联系,才能多态
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象。
Father f1 = new Son();

  • 这些方法不能被重写:(没有重写自然就没有多态)
    1.static
    2.final
    3.private

运行顺序:

  1. 静态代码块(只执行一次,类加载时执行)
  2. 匿名代码块(跟随对象,对象一创建就会先执行匿名代码块,再执行构造方法)
  3. 构造方法

抽象:

  1. 不能去new抽象类,只能靠子类去实现它
  2. 抽象类中可以写普通方法
  3. 抽象方法必须在抽象类中
  4. 继承了抽象类的子类,都必须要把所有抽象方法实现,除非那个子类也是抽象类
  5. 抽象类不能被实例化

接口:

  1. 接口中所有的定义其实都是抽象的,都是public abstract修饰的
  2. 类可以实现借口 implement接口1,接口2,…
  3. 实现了接口的类,就需要重写接口中的方法
  4. 利用接口实现多继承
  5. 在接口中定义的常量是public static final修饰的
  6. 接口不能被实例化,因为他没有构造方法

java中可以有多个class类,但是只能有一个public class
通过外部类实例化内部类:

Outter outter = new Outter();
Outter.Inner inner = outter.new Inner();

异常

try是监控区域,
catch用于捕获异常并做一些处理处理(从小到大捕获异常),
finally用于处理善后工作(finally无论出现什么都会执行,执行完了再报不能处理的错)
(调出try-catch快捷键:Ctrl + Alt + T)

异常处理的一些经验:

  1. 处理运行异常时,采用逻辑去合理规避,同时辅助try-catch处理
  2. 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
  3. 对于不确定的代码,也可以加上try-catch,处理潜在的异常
  4. 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出
  5. 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  6. 尽量添加finally语句去释放占用的资源(IO之类)

其它

a=10;b=20""+a+b //输出:1020
a+b+"" //输出:30
  • 即:若先出现string类型,加号则变成字符串连接符;若先出现运算,则先运算再连接
  • 区间默认为 [ , )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扩展欧几里得算法 POJ 1061

根据此题 整理下 扩展欧几里得 扩展欧几里得是用来判断并求 ax by c 是否有解及其解的数学算法 首先列出定理 1、ax by gcd(a,b) 2、gcd(a,b) gcd(b, a%b); 本题 题意是 判断两个同向的青蛙 在初始位置(x,y),速度不同(m,n)的情况下能否在一个球形路线(周长为…

html:(30):继承和特殊性

继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签&…

[剑指offer][JAVA]面试题第[12]题[矩阵的路径][DFS][剪枝]

【问题描述】[中等] 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入…

Java学习笔记2——常用类

目录1 内部类1.1 成员内部类1.2 静态内部类1.3 局部内部类1.4 匿名内部类2 Object类2.1 getClass()方法2.2 hashCode()方法2.3 toSring()方法2.4 equals()方法2.5 finalize()方法3 包装类3.1 类型转换与装箱、拆箱3.2 整数缓冲区4 String类4.1 常用方法4.2 可变字符串5 BigDeci…

Mysql密码忘记了怎么办?

停止mysql: sudo /etc/init.d/MySQL stop(可能有其它的方法,总之停止MySQLd的运行就可以了) 修改mysql的配置文件: 在/etc/mysql/mysql.conf.d/mysqld.cnf文件中添加skip-grant-tables,每台电脑的文件位置可能不同。 重新启动mysq…

html:(31):层叠和重要性

层叠 我们来思考一个问题:如果在html文件中对于同一个元素可以有多个css样式存在并且这多个css样式具有相同权重值怎么办?好,这一小节中的层叠帮你解决这个问题。 层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有…

架构设计分布式数据结构与算法面试题

目录架构设计请列举出在JDK中几个常用的设计模式?什么是设计模式?你是否在你的代码里面使用过任何设计模式?静态代理、JDK动态代理以及CGLIB动态代理静态代理动态代理cglib代理单例模式工厂模式观察者模式装饰器模式秒杀系统设计分布式分布式…

Java学习笔记3——集合框架

文章目录1 集合的概念2 Collection体系集合Collection父接口3 List接口与实现类List接口List实现类ArrayListVectorLinkedList4 Set接口与实现类Set接口Set实现类HashSetTreeSet5 Map接口与实现类Map接口Map接口的内部接口Entry1 集合的概念 概念:对象的容器&#…

CLOSE_WAIT状态的原因与解决方法

这个问题之前没有怎么留意过,是最近在面试过程中遇到的一个问题,面了两家公司,两家公司竟然都面到到了这个问题,不得不使我开始关注这个问题。说起CLOSE_WAIT状态,如果不知道的话,还是先瞧一下TCP的状态转移…

html:(32):字体,字号,颜色

文字排版--字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例子,下面代码实现:为网页中的文字设置字体为宋体。 body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果用…

POJ-1845 数论

题意就是输入 a,b 输出 a的b次方的因子求和并对9902 取模 这题可以对因子化简 由于唯一分解定理 可以把a表示成 p1^q1*p2^q2...*pn^qn 也就是说 a^b p1^(q1*b)*p2^(q2*b)...*pn^(qn*b) 由于约数和公式可得a^b得约数求和为(1p1p1^2p1^3...p1^(q1*b))(1p2p2^2p2^3...p2^(q2*b…

html:(33):文字排版粗体和斜体

文字排版--粗体 我们还可以使用css样式来改变文字的样式:粗体、斜体、下划线、删除线,可以使用下面代码实现设置文字以粗体样式显示出来。 p span{font-weight:bold;} 在这里大家可以看到,如果想为文字设置粗体是有单独的css样式来实现的&…

[剑指offer][JAVA]面试题第[14-1、2]题[剪绳子][Leetcode][第343题][整数拆分][数学][动态规划][背包]

【问题描述】[中等] 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?…

Java学习笔记4——I/O框架

目录1 流的概念2 流的分类3 字节流文件字节流FileInputStreamFileOutputStream字节缓冲流BufferedInputStreamBufferedOutputStream对象流ObjectOutputStreamObjectInputStream注意事项5 字符流文件字符流FileReaderFileWriter字符缓冲流BufferedReaderBufferedWriter转换流Inp…

snappy

参考From <https://dirtysalt.github.io/snappy.html> Snappy API From <https://www.npmjs.com/package/snappy> Snappy 是一个 C 的用来压缩和解压缩的开发包&#xff0c;其目标不是较大限度压缩&#xff0c;而且不兼容其他压缩格式。Snappy 旨在提供高速压缩速…

2017百度之星资格赛 1003 度度熊与邪恶大魔王

本题我们可以类比背包 背包dp[i][j] 表示再有i个物品下j个空间所获得的最大价值 本题dp[i][j] 可以表示干掉i个血量j个防御力下的最小花费 我们看其实我们就是在不同血量之间转移 如果当前技能的攻击力 > 当前防御力 如果攻击力能干掉怪物那么dp[i][j] min(花费,dp[…

html:(34):下划线和删除线

文字排版--下划线 有些情况下想为文字设置为下划线样式&#xff0c;这样可以在视觉上强调文字&#xff0c;可以使用下面代码来实现&#xff1a; p a{text-decoration:underline;}<p>三年级时&#xff0c;我还是一个<a>胆小如鼠</a>的小女孩。</p> &…

设计模式--职责链模式

实验15&#xff1a;职责链模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解职责链模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用职责链模式解决实际问题。 [实验任务]&#xff1a;财务审批 某物资管理系统…

uoj#188. 【UR #13】Sanrd(Min_25筛)

题面 传送门 题解 这是一道语文题 不难看出&#xff0c;题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程&#xff0c;设 \[S(n,j)\sum_{i1}^nsec_p(i)[min_p(i)\geq P_j]\] 用人话来说的话&#xff0c;就是\(S(n,j)\)表示\(1\)到\(n\)之间所有满足最…

[剑指offer]面试题第[66]题[构建乘积数组][Leetcode][JAVA][第238题][除自身以外数组的乘积][数组]

【问题描述】[中等] 给你一个长度为 n 的整数数组 nums&#xff0c;其中 n > 1&#xff0c;返回输出数组 output &#xff0c;其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4] 输出: [24,12,8,6]提示&#xff1a;题目数据保证数组之中任…