java学习笔记
编程思想
- API文档很重要!!!
- 边想边写,满满的思路就有了。
- 经常打印一些东西出来,对调试程序非常有帮助。
- 多查API文档,多敲代码,看懂了之后再敲。
- 短时间高强度的学习,背是一种很好的方式。
- 保留好例子程序,将来需要用到时查API对照例子程序的写法来写。
- 三个点支撑你的发展:技术、管理、沟通。
- 在此问题中,有哪些类和对象
- 类和对象应该具有哪些属性和方法
- 类和类之间具备了什么关系
创建方法
- 方法的名字
- 方法的参数
- 方法的返回值
内存
了解内存,stack、heap、data seg,代码是如何运行的
Package和import
package com.bjsxt.java140;//1. 公司的域名倒过来,后跟项目名等
public class Cat {
}
public class Dog {
public static void main(String[] args) {
com.bjsxt.java140.Cat c = new com.bjsxt.java140.Cat();//2. 编译出来的类必须位于正确的目录下
}
}
import com.bjsxt.java140.Cat;//3. 引入包
public class Dog {
public static void main(String[] args) {
Cat c = new Cat();//4. 简写
}
}
重写(override/overwrite)
方法重写时要copy,方法名切勿敲错。
继承
- private
- default
- protected
- public
class只能是public和default
继承中的构造方法
- 子类的构造过程中必须调用一次父类的构造方法
- 子类在自己的构造方法中使用super(arguments list)调用父类的构造方法
- 使用this(arguments list)调用本类的另外的构造方法
- 如果调用super,必须写在子类构造方法的第一行
多态(polymophysm)
多态存在的3个必要条件:
- 要有继承
- 要有重写
- 父类引用指向子类对象
异常处理(运行期出现的错误)
观察错误的名字和行号很重要
- 能处理的一定要处理(try{}catch(){})
- 处理不了的一定要往外抛(throws Exception)
- 5个关键字:try、catch、finally、throws、throw
- 先逮小的,再逮大的
- 重写方法,抛出异常需一致或者不抛出
数组
先分配空间,再装数组
int a[ ];//声明数组的名字
a = new int[3];//分配空间
a[0] = 1; a[2] = 5;a[3] = 7;
date days[ ];//声明数组名
days = new date[3];//分配空间
days[0] = new date(1, 4, 2017);
days[1] = new date(2, 4, 2017);
days[2] = new date(3, 4, 2017);
容器
泛型(Generic)
- 在定义集合时同时定义集合中对象的类型
- 泛型➕自动打包和解包(auto-boxing&unboxing)可以省略强制转换
IO
- 输入流
- 输出流
- 字节流
- 字符流
- 节点流
- 处理流
线程
定义:一个程序里面不同的执行路径。
- 进程是一个静态的概念,在机器里头实际上运行的都是线程。
- 在同一个时间点上,一个cpu只能支持一个线程在执行。
- 能使用接口,就不要从Thread类继承。这样会比较灵活一些。
- synchronized,执行这个方法的时候,当前对象被锁定。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器