当前位置: 首页 > ds >正文

廖雪峰-java教程-Part01

快速入门

不同语言区别

  • 编译型语言-事先将源代码通过编译器编译成机器语言,生成可执行文件(运行快,开发慢)
  • 解释型语言-在运行时解释器逐行解释执行,没有可执行文件(运行效率低)
  • java-将源代码编译为字节码,针对不同平台开发jvm,负责加载字节码并执行(一次编译,到处运行)

Java版本

  • Java SE:Standard Edition
  • Java EE:Enterprise Edition
  • Java ME:Micro Edition
  • JDK:Java Development Kit    Java开发工具包
  • JRE:Java Runtime Environment    Java运行环境
  • IDE:Integrated Development Environment   集成开发环境

数据类型

  • java中整型都是有符号的(包括正数、负数、0)
    • 整型范围  最小值:-2ⁿ⁻¹​   最大值:2ⁿ⁻¹ - 1
  • 整型默认为int,浮点型默认为double
    • float f3 = 1.0; // 不带f结尾的是double类型,不能赋值给float(float类型结尾要加f)​
  • 字符串类型不可变!!!

面向对象基础

  • 可变参数    public void setNames(String... names
  • 构造方法    自动生成默认构造方法,如果自己定义了则不会生成默认构造方法
  • 方法重载overload:同一个类中,方法名相同参数不同;方法重写override:子类重新定义父类方法,方法名、参数列表、返回类型都必须相同
  • java中一个类至多有一个父类,Object没有父类
  •  访问修饰符

    权限修饰符关键字说明同类同包不同包的子类不同包的非子类
    privateprivate私有的,只能在当前类内部访问,外部(包括子类)不可见
    默认(包级私有)​无修饰符(不写)​也称为 ​包访问权限(package-private)​,只能被同一个包中的类访问
    protectedprotected受保护的,可以被同一个包内的类以及不同包中的子类访问
    publicpublic公开的,可以被任何类访问,没有任何限制
  • 如果父类没有默认的构造方法,子类就必须显式调用super()并给出参数以便让编译器定位到父类的一个合适的构造方法。(先有父后有子)
  • 多态:针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法
  • 接口interface:如果一个抽象类中没有字段则可以写为接口(比抽象类还抽象),一个类可以实现多个接口,不同于抽象类只能继承一个
    • 接口不能有实例字段,但是可以有静态字段public static final(并不是不能拥有字段)
    • default方法
      interface Person {String getName();default void run() {System.out.println(getName() + " run");}
      }
  • 内部类、匿名内部类、静态内部类
    • // Anonymous Class
      import java.util.HashMap;public class Main {public static void main(String[] args) {HashMap<String, String> map1 = new HashMap<>();HashMap<String, String> map2 = new HashMap<>() {}; // 匿名类!HashMap<String, String> map3 = new HashMap<>() {{put("A", "1");put("B", "2");}};System.out.println(map3.get("A"));}
      }
      
      • map1是一个普通的HashMap实例,但map2是一个匿名类实例,只是该匿名类继承自HashMapmap3也是一个继承自HashMap的匿名类实例
  • classpath:指示jvm如何找到class,java核心库不需要添加到classpath;jar包:将package包打包为一个jar/zip文件;要创建jar包只需要压缩为zip将后缀改为jar

http://www.xdnf.cn/news/18192.html

相关文章:

  • RK3588开发板Ubuntu系统烧录
  • 如何利用gemini-cli快速了解一个项目以及学习新的组件?
  • GitHub Copilot:AI编程助手的架构演进与真实世界影响
  • 【102页PPT】新一代数字化转型信息化总体规划方案(附下载方式)
  • 第七十九:AI的“急诊科医生”:模型失效(Loss Explode)的排查技巧——从“炸弹”到“稳定”的训练之路!
  • 为什么神经网络在长时间训练过程中会存在稠密特征图退化的问题
  • AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年8月17日第163弹
  • 内网穿透系列十一:NPS 是一款轻量级、高性能、功能强大的内网穿透工具,自带Web管理端,支持Docker快速部署
  • Win10快速安装.NET3.5
  • Web全栈项目中健康检查API的作用(现代云原生应用标准实践)(health check、healthcheck、livenessProbe、健康探针)
  • 博士招生 | 香港大学 机器增强认知实验室 招收博士生/实习生/访问学生
  • File 类的用法和 InputStream, OutputStream 的用法
  • Python列表与元组:数据存储的艺术
  • 车载诊断架构 --- 怎么解决对已量产ECU增加具体DTC的快照信息?
  • python---模块
  • CentOS7安装使用FTP服务
  • java内存模型:
  • 新字符设备驱动实验
  • DBngin:告别数据库多版本环境管理的烦恼
  • 后台管理系统-4-vue3之pinia实现导航栏按钮控制左侧菜单栏的伸缩
  • 如何解决C盘存储空间被占的问题,请看本文
  • 数据清洗:数据处理的基石
  • 【完整源码+数据集+部署教程】太阳能面板污垢检测系统源码和数据集:改进yolo11-RVB-EMA
  • IO流与单例模式
  • 【101页PPT】芯片半导体企业数字化项目方案汇报(附下载方式)
  • ArrayList的扩容源码分析
  • 1083. 数列极差问题
  • duiLib 实现鼠标拖动标题栏时,窗口跟着拖动
  • K8s核心组件全解析
  • 产品设计.原型设计