【JAVA学习】1、零基础入门Java 基础语法

  • 前言
  • JAVA开发环境选择
  • Java 基础概念
    • Java 标识符
    • Java修饰符
    • 基础代码模板框架
    • 命名规则
      • 基础规则
      • 后端开发规则
    • 代码格式

前言

最近打算全面系统地学习JAVA编程,以提升自己的后端编程能力,为以后的人工智能模型部署打好基础。

JAVA开发环境选择

目前来说,进行JAVA后端开发,通常使用IDEA,这里提供部分可能用到的工具:
部分参考工具:

  • 项目协同开发/代码托管系统参考:https://coding.net/
  • 原型设计工具参考:蓝湖、墨刀
  • 接口设计工具参考:http://www.doclever.cn/
  • 图标设计工具参考:https://www.iconfont.cn/
  • 数据库设计工具参考:Navicat for MySQL【安装教程:https://mp.weixin.qq.com/s/mPZHBwqDb5X2PV3hozqY7Q ;资源链接:https://pan.baidu.com/s/19BlJRx7tLnDPIM4U6DNWvA;提取码:d9ci】
  • Java编程工具参考:IntelliJ IDEA
  • 前端开发工具参考:VSCode

Java 基础概念

  • 类:类是一个模板,它描述一类对象的行为和状态。
  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

Java 标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于 Java 标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的

合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary

Java修饰符

像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized

基础代码模板框架

创建FirstCode.java文件,在文件内撰写类FirstCode


public class FirstCode {/* 第一个Java程序* FirstCode.java*/public static void main(String[] args) {System.out.println("The First java application!"); // The First java application!}
}

需要注意的是,

  • 所有的 Java 程序由 public static void main(String[] args)方法开始执行。
  • 源文件名必须和类名相同(例如,主类为FirstCode,则文件名需为FirstCode.java)。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。

在IDEA中,直接点击run即可运行代码,我们也可以用命令行的方式编译运行代码:

javac FirstCode.java
java FirstCode

或者:

javac -encoding UTF-8 FirstCode.java
java FirstCode

命名规则

基础规则

以下规则参考《阿里巴巴Java开发手册终极版v1.3.0》:

  • 对于所有的类来说,类名的首字母应该大写(UpperCamelCase 风格)。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 FirstCode
  • 所有的方法名、参数名、成员变量、局部变量都应该以小写字母开头(lowerCamelCase风格)。如果方法名、参数名、成员变量、局部变量含有若干单词,则后面的每个单词首字母大写。
  • 代码中的命名均不能以下划线_或美元符号$开始,也不能以下划线_或美元符号$结束。
  • 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
  • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
  • 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。
  • 中括号是数组类型的一部分,数组定义如下:String[] args,禁止使用 String args[]的方式来定义。
  • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。例如:应用工具类包名为 com.alibaba.open.util、类名为 MessageUtils(此规则参考spring 的框架结构)。
  • 杜绝完全不规范的缩写,避免望文不知义,例如,将AbstractClass“缩写”命名成 AbsClass,降低了可读性。为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意。
  • long 或者 Long 初始赋值时,使用大写的 L,不能是小写的 l,小写容易跟数字 1混淆,造成误解。

后端开发规则

  • 不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护。大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护。

  • 常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。

  • 如果模块、接口、类、方法使用了设计模式,在命名时体现出具体模式。说明:将设计模式体现在名字中,有利于阅读者快速理解架构设计理念。例如:public class OrderFactory;

  • 接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的 Javadoc 注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。

  • 对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别。例如,CacheServiceImpl实现 CacheService接口。

  • 如果是形容能力的接口名称,取对应的形容词做接口名(通常是–able 的形式)。正例:AbstractTranslator实现 Translatable

  • 枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。

  • 各层命名规约:
    A) Service/DAO 层方法命名规约
    1) 获取单个对象的方法用 get 做前缀。
    2) 获取多个对象的方法用 list 做前缀。
    3) 获取统计值的方法用 count 做前缀。
    4) 插入的方法用 save/insert 做前缀。
    5) 删除的方法用 remove/delete 做前缀。
    6) 修改的方法用 update 做前缀。
    B) 领域模型命名规约
    1) 数据对象:xxxDO,xxx 即为数据表名。
    2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。
    3) 展示对象:xxxVO,xxx 一般为网页名称。
    4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。

  • 如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类。下面正例中的数字就是延伸信息,表示星期几。
    正例:

public Enum { MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7);}

代码格式

以下规则参考《阿里巴巴Java开发手册终极版v1.3.0》:

  • 大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
    1) 左大括号前不换行。
    2) 左大括号后换行。
    3) 右大括号前换行。
    4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
  • 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格。
  • if/for/while/switch/do 等保留字与括号之间都必须加空格。
  • 任何二目、三目运算符的左右两边都需要加一个空格。(运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等。)
  • 采用 4 个空格缩进,禁止使用 tab 字符。如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。
  • 注释的双斜线//与注释内容之间有且仅有一个空格。
  • 单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:
    1) 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进,参考示例。
    2) 运算符与下文一起换行。
    3) 方法调用的点符号与下文一起换行。
    4) 方法调用时,多个参数,需要换行时,在逗号后进行。 5) 在括号前不要换行,见反例。
  • 方法参数在定义和传入时,多个参数逗号后边必须加空格。
  • IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,
    不要使用 Windows 格式。
  • 没有必要增加若干空格来使某一行的字符与上一行对应位置的字符对齐。
  • 方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间插入一个空行。相同业务逻辑和语义之间不需要插入空行。

【JAVA学习】1、零基础入门Java 基础语法:概念、规则、格式相关推荐

  1. 假赋值java_Java十四天零基础入门-Java赋值运算符

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 Java赋值运算符 赋值运算符目前也是只需要掌握=.+=.-=.*=./=.%=,其它和二进制相关的内容也是到后面遇到的时候再详细学习.赋值 ...

  2. Java从键盘输入n行字符串_Java十四天零基础入门-Java布尔类型

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 Java布尔类型 在Java语言中布尔类型的值只包括true和false,没有其他值,不包括1和0,布尔类型的数据在开发中主要使用在逻辑判断 ...

  3. java短除法获取二进制_Java十四天零基础入门-Java的数据类型介绍

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 本章节目标: 理解数据类型的作用.Java中包括哪些数据类型?常见的八种基本数据类型都有哪些?会用八种基本数据类型声明变量?什么是二进制?原 ...

  4. Java好学吗?零基础入门Java,三个就业方向实现月入过万!

    Java好学吗?零基础入门Java容易吗?据统计,这是很多人学习前最常问也是最关心的问题之一. 不可否认,大家在开始接受新事物的时候都会陷入困境,但学习是循序渐进的,零基础入门Java到底难不难,只有 ...

  5. 视频教程-由浅入深Java零基础入门-Java

    由浅入深Java零基础入门 负责过多个软件项目的研发.设计和管理工作,拥有项目管理师认证.项目监理师中级认证.出版过的图书有<微信小程序开发图解案例教程><Axure RP8原型设计 ...

  6. java基础入门-01-【基础、运算符、判断和循环、数组、方法】

    Java基础入门-01-[基础.运算符.判断和循环.数组.方法] Java入门到起飞(含斯坦福大学练习题+力扣算法题+大厂java面试题) 1.Java入门 常用CMD命令 Java基础学习 JDK的 ...

  7. Java学习笔记(7)——Java基础之IO多线程网络思维导图

    Java面向对象学习笔记之:包括IO(字节流,字符流,节点流,处理流).线程(线程创建,线程控制,线程同步).网络(TCP Scoket,  UDP Scoket)(全屏观看Java学习笔记(7)-- ...

  8. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  9. C语言零基础入门——1.基础知识与环境搭建。

    C语言零基础入门--1.基础知识与环境搭建. 好了.终于迎来了第一篇文章,这篇文章要做的事情非常简单,主要有三个事情 ​ 第一:C语言的介绍. ​ 第二:计算机的基础知识. ​ 第三:C语言的环境安装 ...

最新文章

  1. Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)
  2. TensorFlow AI 新品更易用!联手NVIDIA,支持Swift和JavaScript
  3. python核心编程电子版_python核心编程答案.pdf
  4. C/C++中的##用法
  5. Android魔法(第二弹)——一步步实现淹没、展开效果
  6. 【button】 按钮组件说明
  7. [转载]什么是 Design Hackathon?
  8. python123测验答案测验3_知到app数学分析3-3测验答案查询服务
  9. poj3254(状压dp入门第一道题,很详细)
  10. nyoj--49--开心的小明(背包)
  11. 爬虫scrapy框架安装使用
  12. 应用安全-Web安全-越权漏洞整理
  13. html多个div横向排列居中,多个div垂直居中横向排列的示例分析
  14. 不花钱也能使用迅雷的高速通…
  15. 安庆师范大学c语言程序设计,安庆师范大学计算机与信息学院欢迎你!
  16. Cartesian convention笛卡尔公约
  17. 智力题——1红蓝墨水
  18. 【UNR #1】火车管理
  19. cocos2d-x 图片纹理优化 资源加载方案
  20. 推荐系统: 问题、算法与研究思路

热门文章

  1. 历时半年,我的IT编程自学平台终于来了
  2. Windows部署Apache服务器步骤
  3. docker安装与重装
  4. 使用sql server+jmail组件发送邮件
  5. 【分享】SDLPAL 仙剑奇侠传开源项目编译
  6. Kylin(二) 安装与搭建
  7. windows环境下将yolo-fatest的caffe模型转化为wk模型
  8. 微信小程序怎么上架和发布商品?
  9. html5(mp4)无法播放,关于HTML5中Video标签无法播放mp4的解决办法
  10. 用python实现生成验证码图片