JavaEE学习笔记1——Java基础

JavaEE学习笔记1

配套代码仓库链接


Note for JavaEE-Day1

基本配置

以前写的笔记,同步过来

JDK

官网下载,之后配环境变量。
安装后可以用java -version查看JDK版本。

IDEA下载及安装

官网下载,之后申请/延长一下student license。

Git相关

官网下载git,远程仓库的创造就不必多说了。

Git基础

Git是版本管理的重要工具,开发者应该至少掌握其基本操作。

这里可以先通过learnGitBranch了解并熟悉其基本操作,再基于Kisugi Takumi的学习笔记进行实践。

基本操作如下:

  1. clone(克隆): 从远程仓库中克隆代码到本地仓库
  2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
  3. add(添加): 在提交前先将代码提交到暂存区
  4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. fetch (抓取) : 从远程库抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  6. pull (拉取): 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
  7. push(推送): 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

另外的操作如rebase、cherry-pick以及版本查看git-log和众多带参数形式都非常有用,可根据需要使用。

Java基础

基本介绍

首先推荐一下廖老师的博客,很棒的!下面介绍几个术语:

  • JVM: java虚拟机,像编译+运行的C++要对不同平台编译机器码(因指令集不同),而解释型语言如Python运行效率太低,折中有了JVM,即对不同平台编写虚拟机,在虚拟机上运行java字节码文件。
  • Java SE/EE/ME:SE即Standard Edition,标准版本;EE即Enterprise Edition,可理解为企业版;ME即Micro Edition,可以理解为精简版。ME在现在应用不多,因为移动端有Android;所以这里重点就是SE和EE了,SE对应的是Java的核心技术及标准库等,EE在SE的基础上加上了大量的API和库。
  • JDK: Java Development Kit,包含JRE、编译器和调试器等工具。用于编译字节码及运行。
  • JRE:Java Runtime Environment,即运行Java的虚拟机。

另外再介绍几个命令行操作,即再JAVA_HOME/bin目录下的可执行文件:

  • java: JVM,用以运行java文件,即运行Java字节码文件。
  • javac: java编译器,将Java源码(.java文件)编译为java字节码文件(.class文件)。
  • jar: 用以将.class文件打包成一个.jar文件,便于发布。
  • javadoc: 从java中自动提取注释并生产文档。
  • jdb: Java调试器,用于开发阶段的运行调试。

java的编写需要有且仅有一个public类,且类首字母大写,且文件名需要与这个public类名完全相同,如Hello.java。结合前面我们可以用命令javac Hello.java编译,再用命令java Hello执行。但java11后可以直接使用java Hello.java来运行单文件源码,然而实际中项目难免存在引用其他库,所以这个不是很重要。

基本语法

Java的基本语法和C#非常相似,当然也与C++也比较相似(如类、抽象类的使用),所以只需要注意一些特殊的小细节即可:(尚不完整,将补充)

程序基础
  1. 初值。java定义变量类似于C++的全局变量,默认初值为0。
  2. unsigned。java只定义了符号整形,即暂无unsigned类型。
  3. 浮点数。
    • java中实数如3.1415会被默认为double类型,若想表示float类型需在其后加一个f,如3.1415f。
    • 在其强转为整型时,若过大或过小将转换为整型的最大/最小值。
  4. 布尔类型。JVM通常将其表示为4字节整数,尽管其只有true和false两个值。
  5. 字符类型。java默认Unicode编码,即在集成ASCLL的基础上,字符还可以表示汉字等,但这也导致英文字符与中文字符一样需要2个字节来表示。
  6. 常量。final定义常量,与C++的const相似。
  7. var关键字。与JavaScript相似,也与C++的auto相似,用以定义变量,由编译器自动判断变量类型。
  8. 字符串。
    • 字符串是引用类型,str1=str2类似于C++的指针判等而非字符串内容判等,内容判等应使用str1.equals(str2)。
    • 欲在字符串中使用单双引号等需要用"\"来转义表示。
    • Java13引入"“…”"用以表示多行字符串。
  9. 数组。
    • 与C#比较像,使用int[] xxx形式,即方括号在前。
    • 与C++不同,越界即报错。
流程控制与面向对象
  1. 关于除0。除0会导致运行报错,但编译时不会报错。

  2. switch。switch用法与C++类似,需break。但在java12后引入了新语法->,即可以通过case xxx->operation方式调用,多条语句需用大括号,这样就可以无需添加break。另外这种写法也支持swich返回值,可直接将上面的operation改为返回值,多条语句也可以使用yield 返回值/变量的形式。

  3. 命令行参数。java程序的入口是main方法,形如public static void main(String[] args),它可以接受一个命令行参数,即这里的args,具体实现如命令行中输入java Main -version。命令行参数由JVM接受用户输入并传给main方法。

  4. 可变参数。方法参数传递可以使用可变参数,相当于数组,即参数表(String... names)(String[] names)等价。当传入NULL时相当于传入空数组。

  5. 类的继承。

    • 与C#相似,java一个类只能继承自一个父类,且默认继承自Obeject类(Object类没有父类)。
    • 子类的构造函数若不显示声明则会默认优先调用父类的默认构造函数,即无参数形式,但若父类中只定义了构造函数的有参数形式,则会报错。
    • 阻止继承。java15后引入sealed关键字及permits以显示的写出允许继承的子类名称,如public sealed class Shape permits Rect, Circle, Triangle。注意sealed在java15中只是预览状态,欲启用它需使用参数--enable-preview--source 15
    • 关于转型。子类向父类转型是安全的,如Person per = new Student(),但反过来是不安全的,因此可能会报错。可以事先采取实例名 instanceof 类名来判断是否是对应的类或其子类。在Java14后可以直接指定转换后的变量名,如stu instanceof Person per,即起到了既判断又转型的作用。
  6. 类的多态。

    • 与很多面向对象语言相同,方法名、参数都相同但返回值不同的方法在编译时会报错的。
    • 注解@Override用以检查覆写的正确性。且覆写后的方法经向上转型后仍有作用,即替代了父类中的对应方法。
    • 可以使用final修饰父类方法以禁止子类对父类方法的覆写。也可以直接修饰类以禁止继承。
stl与异常
  1. stl队列。声明形如ArrayList list=new ArrayList<>(),通过list.add(插入位置(默认为尾部插入),新元素)插入新元素,遍历既可以使用foreach形式、get(下标)形式,也可以使用Interator=list.iterator()的迭代器形式。
  2. stlMap。与队列同理,声明形如Map<Integer,String> map=new HashMap<Integer,String>。
  3. 例外&抛出异常。形如try{}catch(IllegalArgumentException e){}finally,try中出现异常后进入catch,catch处理完成后或无异常进入finally。期间可以使用throw new (异常名)抛出异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaEE学习笔记是我自己在学习过程中总结的javaweb各项技术和知识点。它包含了JavaEE的十三种核心技术,分别是JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF。 JavaEE是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。 在支持JavaBeans规范的开发环境中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。所以在JavaEE学习笔记中,你可以找到关于这些核心技术和JavaBean的详细内容和示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [javaEE学习笔记](https://download.csdn.net/download/sugar_map/10268742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [JavaEE学习笔记整理](https://blog.csdn.net/qq_51861704/article/details/124133294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hiroxzwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值