Java基础
java基础
1.注释、标识符、关键字
注释
单行注释:// 快捷键 Ctrl +/
块注释:/* */
文档注释:/** */
标识符、关键字
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
- 所有的标识符都应该以字母,美元符,或者下划线开始
- 首字母之后可以是字母、美元符、下划线或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音
2.数据类型
基本类型
- 数值类型
- 整数类型:byte(1个字节)、short(2)、int(4)、long(8)(Long类型要在数字后面加L,以示区分)
- 浮点类型:float(4)(float类型要在数字后面加F,以示区分)、double(8)
- 字符类型:char(2)
- boolean类型:占一位其值只有true和false两个
引用类型
- 类 (字符串(String),String 不是关键字,类)
- 接口
- 数组
常见问题 (面试题)
-
整数扩展:
//整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x int i = 0b10; int i1 = 10; int i2 = 010; //八进制最容易忽略 int i3 = 0x10; System.out.println(i); System.out.println(i1); System.out.println(i2); System.out.println(i3); 2 10 8 16
-
浮点数扩展
// 浮点数拓展 银行业务怎么表示? 钱 // 不能用浮点数去表示,要知道浮点数在计算机内表示是位数有限的, // 离散的:并不能表示实轴上每一个点,表示的不是一条线段,而是一个一个离散的点 // 二进制的限制,本身在十进制有穷的小数,转成二进制可能会出现无穷, // 而计算机内无穷是进行有穷表示,有舍入误差,所以保存的数与实际数是大约,接近但不等于的关系 // 以上问题可以用一个工具类(后面讲解):BigDecimal 数学工具类 float f = 0.1f; double d = 1.0/10; System.out.println(f==d); //false float d1 = 2143243243243434f; float d2 = d1+1; System.out.println(d1==d2); //true //近似保存可能出现不一致 可能 f 实际保存是 0.10000000000000000000000000000000111 // d 为 :0.10000000000000000000000000000000000000000000003 //最好完全不用浮点数比较
-
字符扩展:所有的字符本质还是数字 ;Unicode , ASCII
转义字符:\t : Tab \n:换行
3.类型转换
低--------------------------------------------------------------->高
byte,short,char->int ->long ->float->double
- 运算中,不同类型的数据先转化为同一类型,然后进行运算
- 低到高,自动转换,高到低 ,强制转换 byte b =(int) i ;注意溢出
- 不能布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 转换的时候可能存在内存溢出,或者精度问题
常见问题
-
操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割,为了看着方便,且不会影响计算机内部存储 int money = 10_0000_0000; System.out.println(money) 1000000000 //溢出问题 int money = 10_0000_0000; int years = 20; int total = money*years; System.out.println(total); -1474836480 // long total2 = money*years;默认是int,转换之前已经存在问题了 //正确做法为:long total2 = money*(long)years;
4.变量、常量
变量
- 变量就是可以变化的量
- Java是一种强类型语言,每个变量都必须声明其类型
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
- 注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量 : 加static关键字,从属于类
- 实例变量 :从属于对象;如果不进行初始化,为默认值
- 局部变量 : 必须声明和初始化值
常量
- 初始化后不能再改变值,不会变动的值 ,final 关键字
- 所谓变量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
- 常量名一般使用大写字符
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母都大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
5.运算符
Java语言支持如下运算符
-
算术运算符:+,-,*,/,%,++,--
-
赋值运算符 : =
-
关系运算符 :>,<,>=,<=,==,!= ,instanceof
-
逻辑运算符:&& ,||,!
-
位运算符:&,|,^,~,>>,<<,>>>
-
条件运算符:?:(x ?y : z)(如果x==true,则结果为y,否则结果为z)
-
扩展赋值运算符:+=,-=,*=,/=
//一个idea快捷键:Ctrl+D:复制当前行到下一行 //Math工具类 //注意:逻辑运算中的短路运算:c=5 (c > 4)&&(c++ < 4) c并不会加一,c还为5
6.包机制、JavaDoc
包机制
-
为了更好的组织类,java提供了包机制,用于区别类名的命名空间
-
一般利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,完成此功能 。关键字,import
//idea快捷键 Ctrl + 鼠标右键 可以进入对应包(去查看源码) //Alt + Enter : 报错相应信息,程序给出的解决方法(出错时的程序提示)
代码规范书籍
代码规范 :阿里巴巴Java开发手册下载
Java SE API 和文档
Java 8 帮助文档 Java 8 帮助文档
JavaDoc
可以给类或方法加注释 :/** */
- javadoc命令是用来生成自己的API文档的
- 参数信息
-
@author 作者名
-
@version 版本号
-
@since 指明需要最早使用的jdk版本
-
@param 参数名
-
@return 返回值情况
-
@throws 异常抛出情况
-
//例 文档注释
package com.daershujia;
/**
* @author XXXX
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**
* @author XXXX
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception {
return name;
}
//写了类后,在其前面加/** 再按enter键 idea会根据所写代码自动生成对应模板,之后程序员进行适当修改
}
命令行生成JavaDoc文档
- 点击想要生成文档的类的右键
- 选择 Show in Explorer 找到相应程序的地址
- 在上方程序具体位置前输入cmd+ 空格 ,点击enter,进入+ 空格 ,点击enter,进入对应位置的cmd
- 输入命令 javadoc -encoding UTF-8 -charset UTF-8 Doc.java(encoding 设置编码格式,描述有可能有中文,charset,字符集 Doc.java 要生成文档的类的名字再加.java )
- 运行后,即生成对应文档(index)(在程序原来的目录下)。在程序所在位置出现了很多html文档,打开index(首页查看),即为与官方文档一样的模式。生成文档成功
idea 生成JavaDoc文档
- 选择Tools , 再点击Generate JavaDoc
1.(Generate JavaDoc scpe)选择是整个项目还是模块还是单个文件(选择文件为File ....)
2.(Output directory)文档输出路径(选择文档生成在那里)
3.(Locale) 选择地区,这个决定了文档的语言,中文就是zh_CN
4.(Other command line arguments)传入JavaDoc的参数,一般这样写 -encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/8/docs/api
("-encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/8/docs/api"内容复制进去,双引号中标题可以自己更改 )
————————————————
版权声明:本文为CSDN博主「张鲜生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42140580/article/details/89635775
原文地址:https://www.cnblogs.com/moshanghuai/p/13286863.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- redis 入门(一)——Linux环境安装测试以及基本命令演示
- 大型项目技术栈第五讲 富文本编辑器
- weblogic 11g StuckThreadMaxTime 问题解决 以及 线程池、数据库连接池参数调优
- 大型项目技术栈第九讲 kaptcha的使用
- 大型项目技术栈第十讲 日志与性能监控
- Mybatis系列第三讲 Mybatis使用详解(1)
- Maven系列第二讲 安装、配置、mvn运行过程详解
- Maven第六讲 生命周期详解 高手必备!
- 鸿蒙 Ability 讲解(页面生命周期、后台服务、数据访问)
- Maven 项目第七讲 Maven插件
- weblogic Schema validation schemaValidationEnabled=false 启动报错解决
- redis 反序列化deserialize异常问题解决
- redis 入门(二)——maven4.0 + Jedis2.9.0 + redis3.2.6 实战
- spring boot 启动报错Log4j2 could not find a logging implementation 解决
- spring boot 启动 NoClassDefFoundError: org/springframework/core/ErrorCoded 报错