`
nudtgk2000
  • 浏览: 72979 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

马士兵课程笔记

阅读更多

 

  • J2EE框架
    • EJB (Enterprise JavaBean) 3.0
  • JAVA两大特色
    • JVM
      • 一次编译, 到处运行
      • 跨平台
      • JAVA是解释型的语言 -- 要编译成.class文件, 再由JVM逐条解释执行
    • 垃圾收集器
  • JDK安装
    • 安装路径最好没有空格, 以避免在某些情况下出错; 另一种避免的办法是在添写环境变量或类似时候用双引号把路径框起来
    • 装完JDK最好再装一个JRE, 让开发环境与其他正常使用的JAVA程序的运行环境区别开
  • 环境变量
    • %PATH%: "%JAVA_HOME%\bin;"
    • %CLASSPATH%: ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;..."编译器从前向后寻找引用到的类, 因此顺序很重要, 谨防引用到的类在多个地址中出现, 连接到意料以外的类 (在Eclipse中没有这种担心).
  • 一个源文件里只能有一个public类(而且必须和源文件同名)
  • 入口 -- main方法
  • java严格区分大小写
  • 标识符命名规则
    • 字母, 数字, '_', '$'
    • 以字母, '_'或'$'开头
    • 大小写敏感
    • 类名首字母大写, 变量和方法名首字母小写;
    • 驼峰标识: 命名中的第一个单词后每个单词首字母都大写
  • 常量
    • 整型常量默认是int, 要定义long常量就得加L
    • 浮点型常量默认是double, 要定义float常量就得加f
    • 另一种: 值不可变的变量final
  • 变量
    • 变量从本质上看是一块内存区域, 通过变量名来访问
      • 先声明, 再赋值(有默认初始值, 但方法内声明的必须显式地赋值), 才使用
      • int i1, i2, i3 = 4; 只有i3的值是4

 

    • 成员变量(类内方法外) 和 局部变量(方法内), 作用域; 编译器会给成员变量初始化默认值, 但局部变量必须自行初始化
    • 基本数据类型 和 引用数据类型
    • 基本数据类型
      • 四类八种
        • 整数型 -- byte, short, int, long
        • 浮点型 -- double(4), float(8)
          • 有一个表示精度问题, 浮点型不能直接判断相等, 而必须采取二者差值足够小的判断方式
        • 布尔(逻辑)型 -- boolean, 值只能是true和false, 不能是数字甚至null
        • 字符型 -- char, utf-16编码俩字节, "char c = '\n0061';"
      • 类型转换
        • 依容量, 小向大是自动转换的, 大向小转换要加强制转化符, 会损失精度甚至出错, 需要程序员自行判断和控制
        • 整型大向小强制转换时是将超出表示范围的部分简单砍掉, 而浮点型不是
        • 多种数据类型在一起运算时, 是自动转换成容量最大那个类型
        • byte, short, char互相转换或者运算时, 其实是先转换成int, 所以需要强制转换
    • 引用数据类型--除基本类型以外的数据类型
      • 引用类型占两块内存
        • 首先是引用名, 仅存放着应用对象的地址;
        • 然后是new 出来的对象, 位于引用所指向的地址(在堆内存里)中;
        • 如 String s = "Hello world";
          // 等同于
          String s;
          s = new String("Hello world");
          

  • 运算符
    • 算数运算符
    • 关系运算符
    • 逻辑运算符: 抑或^, 短路与&& 和 短路或|| (当第一个运算数触发, 就不再算第二个, 效率更高)
    • 位运算符: &, |, ^, ~, >>, <<, >>>
    • 赋值运算符: =, 扩展赋值运算符: +=等
    • 字符串连接运算符: +
    • 三目条件运算符

  • 语句
    • 条件语句 switch(...) {...case xx:...break;...default:...}
      • 使用break防止case穿透
      • 多个case可以合并在一起
      • default补漏
      • java的switch语句只能探测int值(其他类型其实是自动转换)
    • 循环语句
      • for(初始化语句; 循环判断语句; 修改判断变量) {...}
        • JDK1.5 后的增强型 for (a : C) {...},用于对集合内元素遍历,不适合需要用到数组内元素索引的
      • do {...} while (...) ; 分号一定不能忘
      • break 和 continue: 与if结构无关
  • 类与对象
    • 思想
      • 面向过程: 方法层次上的复用
      • 面向对象: 对象层次的复用
      • 问题中有哪些类和对象, 各类有什么属性和方法, 类之间有什么关系
      • 合适的方法应该出现在合适的类里
      • 在内存中区分类和对象
        • 类是静态的概念, 位于代码区
        • 对象是new出来的, 位于堆内存. 成员变量(静态变量除外)每个对象都有各自存储空间和值, 而方法只有一份, 执行时才占用内存 
    • 概念
      • Object = Instance
      • (静态)属性 = 成员变量
    • 类之间的关系
      • 关联关系: "A类里的某个方法的参数是B类的对象" (最弱的关系)
      • 继承关系: "B类是一种A类" (一般与特殊) (C++的多重继承)
      • 聚合关系: "B类是A类的一部分" (整体与部分) 聚集(松耦合)与组合
      • 实现关系: (接口, 多态)
    • 引用(类似C++中的指针概念)
      • java中的对象是通过引用对其进行操作的.
    • 方法的重载: 方法名相同, 参数列表不同, (返回不同不允许)
    • this:
      • 在类的方法定义中使用, 代表调用该方法的对象的应用;
      • 当必须指出当前调用方法的对象是谁时用到this;
      • 可用于区分局部变量(或参数)与成员变量重名的情况;
    • static:
      • 为该类的所有对象公用, 在第一次使用时被初始化
      • 存储: 在data segment, 仅一份;
      • 访问: 类.xxx; 对象直接访问(同一个处空间)
      • 用static声明的静态方法, 在调用该方法时, 不会将对象的引用传递给它, 所以在static方法中不可访问非static的成员.
    • package 和 import:
      • 解决类的命名冲突问题
      • java编译器把包对应于文件系统的目录管理, 用'.'来指明包(目录)的层次, 所以包应该位于文件系统相应的目录中, 否则解释不能通过;
      • 命名惯例: 域名倒过来, 从大到小, 从上到下, 从外到里;
      • 该类的源码文件可能会有影响, 别放在同目录或者%CLASSPATH%目录下;
      • 必须写在源文件第一行;
      • 无名包, 裸体类
      • 访问别的包的类: 写全名; import引入, 应避免用*;
      • Class文件的最上层包的父目录必须在%CLASSPATH%内, 强烈建议每个project有独立的%CLASSPATH%;
      • 运行时也要写全名. 
      • Eclipse解决了上面许多问题.
  • 大小: 34.5 KB
分享到:
评论

相关推荐

    马士兵课程笔记(续5)

    【标题】"马士兵课程笔记(续5)"主要聚焦在编程和软件开发的某一特定领域,结合了“源码”和“工具”的概念。这可能是关于解析、分析或利用源代码,以及使用特定工具来提升开发效率或理解复杂系统的主题。马士兵是一...

    马士兵课程笔记(续4)

    【标题】"马士兵课程笔记(续4)"主要聚焦于编程知识,特别是通过代码实例来深化理解。马士兵是一位知名的IT教育专家,他的课程通常涵盖了广泛的编程主题,旨在帮助学员深入掌握技术。在这个部分,他可能继续讲解了...

    马士兵jvm调优笔记.docx

    ### 马士兵JVM调优笔记知识点梳理 #### 一、Java内存结构 Java程序运行时,其内存被划分为几个不同的区域,包括堆内存(Heap)、方法区(Method Area)、栈(Stack)、程序计数器(Program Counter Register)以及...

    马士兵hibernate学习笔记(原版)

    ### 马士兵Hibernate学习笔记知识点总结 #### 一、课程内容概览 - **HelloWorld**:通过简单的示例程序介绍如何启动一个基于Hibernate的Java项目。 - **Hibernate原理模拟**:解释O/R Mapping的概念及其重要性。 -...

    马士兵hibernate笔记

    【马士兵Hibernate笔记】是一份面向初学者的教程,旨在帮助读者深入了解Hibernate这一持久化框架。Hibernate是一个基于Java的ORM(对象关系映射)工具,它允许开发者将数据库操作转换为面向对象的方式,从而简化了...

    马士兵Python基础版2020教程P98-P134PPT笔记+课堂代码.pdf

    在马士兵的Python基础版2020教程P98-P134部分,我们学习了Python编程中的几个核心概念,包括数据结构、异常处理以及面向对象编程的基础。 1. **列表遍历与嵌套**: 示例代码展示了如何遍历包含字典的列表来查找...

    JAVA笔记(根据马士兵的java视频整理).pdf

    "JAVA笔记(根据马士兵的java视频整理)" 本资源摘要信息是根据马士兵的java视频整理的JAVA笔记,涵盖了JAVA基础知识、数据结构、语法基础、面向对象编程、异常处理、数组、集合类、线程、网络编程、图形化用户接口...

    马士兵 高并发 java架构 预习课 源码

    本课程基于马士兵老师的java高并发编程公开课,深入探讨了多线程在实际应用中的重要性及其使用技巧。通过对源码的分析,我们可以更直观地理解并发控制、线程安全以及性能优化等核心概念。 一、多线程基础 多线程是...

    Hibernate笔记 马士兵

    第1课 课程内容 6 第2课 Hibernate UML图 6 第3课 风格 7 第4课 资源 7 第5课 环境准备 7 第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/R Mapping 11 一、 定义: ...

    马士兵struts2课程的学习笔记

    马士兵的Struts2课程是学习该框架的重要资源。以下是对该课程笔记的详细解析: 1. **导入包**:在使用Struts2之前,首先需要将相关的Struts2库导入到项目的类路径中。这通常包括struts2-core.jar和其他相关依赖库,...

    马老师jvm调优实战笔记

    马老师 JVM 调优实战笔记 JVM 调优是 Java 开发者们不可或缺的技能,它直接影响着 Java 应用程序的性能和稳定性。本笔记是马老师的 JVM 调优实战笔记,涵盖了 JVM 的概述、内存结构、堆内存、垃圾回收算法、JVM ...

    亿级流量课程笔记压缩包

    在亿级流量课程笔记压缩包中,我们能够深入学习到如何设计和管理处理大量用户访问的系统,这对于任何希望在互联网行业中取得成功的开发者来说都是至关重要的。亿级流量的处理能力是衡量一个平台稳定性和效率的关键...

    python-金牌讲师课件及其代码

    最后,Python的金牌讲师课程可能还会涵盖测试和调试技巧,如使用unittest进行单元测试,利用pdb进行调试,以及如何编写文档和代码注释,这些都是成为专业Python开发者必不可少的技能。 总之,"python-金牌讲师课件...

    学习oracle的TXT格式笔记

    "oracle马士兵上课笔记.txt"可能来源于知名讲师马士兵的Oracle课程,可能涵盖高级特性如数据库分区、物化视图、数据库链接、并发控制等。这些内容对于提升数据库管理技能和解决复杂问题非常有帮助。 "第一天ORACLE...

    python教程马哥-60集全全新马哥教育运维必备python基础语法全讲解-IT教程网....pdf

    《Python基础语法全讲解》是马哥教育推出的一套60集完整的Python教程,专为运维人员设计,旨在提供全面的Python基础知识。本教程涵盖了从Python编程语言的初识、编程环境的准备到高级特性的深入理解,为学习者打造了...

    Python(杨淑娟老师基础课程巩固).pdf

    在这个杨淑娟老师的Python基础课程巩固中,涵盖了变量、数据类型、字符串操作、文件处理、转义字符、位运算符、类型转换、输入输出以及条件判断等多个核心概念。 首先,变量在Python中包括标识、类型和值三个组成...

    全国大学1000多门20000多课时课程在线看 软件工程 PPT

    1. “马士兵hibernate学习笔记.doc”和“马士兵hibernate学习笔记(文字整理版).doc”:这两份文档可能是关于Hibernate框架的学习资料,Hibernate是Java中常用的ORM(对象关系映射)框架,用于简化数据库操作。...

    《Python学习笔记合集》需要自取

    这份笔记是基于B站上马士兵老师的Python课程整理而成,旨在帮助学习者系统地掌握Python编程语言,并提供了一个方便的学习路径。笔记的结构清晰,内容丰富,适合初学者和有一定基础的程序员作为自我提升的参考。 在...

    《Python学习工程代码合集》

    《Python学习工程代码合集》需要自取,没有积分可以私信发...里面包含1到15章所有涉及到的代码,里面的课程是b站上马士兵的课程,可以根据我之前发的笔记结合着代码去听课,自己也省事了。当然,请阁下随意,不喜勿喷。

Global site tag (gtag.js) - Google Analytics