文章目录
- Java特性和优势
- java三大版本
- JDK、JRE、JVM(从前到后包含)
- Java开发环境搭建步骤
- Java程序运行机制
- IDE
- Java基础语法
- 一、注释、标识符、关键字
- 二、数据类型(shift双击问题)
- 三、变量、常量、作用域
- 四、运算符
- 五、包机制、JavaDoc
- Java进阶语法
- 一、Scanner用户交互(输入)
- 二、for迭代器(debug学习)
- 三、方法
- 四、数组
- 五、面向对象
- 六、异常
Java特性和优势
- 简单性
- 面向对象
- 可移植性
- 高性能
- 分布式
- 动态性
- 多线程
- 安全性
- 健壮性
java三大版本
- JavaSE:标准版,java基础*
- JavaME:嵌入式开发
- JavaEE:企业级开发,web开发*
JDK、JRE、JVM(从前到后包含)
Java开发环境搭建步骤
- JDK下载安装
- 配置环境变量
- 网上找教程安装即可
Java程序运行机制
- 编译型:用编译器把整个程序.java 编译成.class(操作系统要求低)
- 解释型:实时解释程序语句(速度快)
- 程序运行机制
IDE
IDE(集成开发环境)
Java常用的IDE:Eclipse、Idea…
Java基础语法
一、注释、标识符、关键字
注释:
- 结构复杂需要使用
- 注释给开发人员看的
- 写注释是一个合格的开发者必备修养
Java注释的三种方式:
- 单行注释
- 多行注释
- 文档注释
public class demo1 {
public static void main(String[] args) {
//单行注释
/*
* 多
* 行
* 注
* 释
* */
/** @Description 文档注释,写的会比较少
* @Author along
* */
System.out.println("demo!");
}
}
标识符:
Java所有的组成部分都需要名字,比如类名、方法名、变量名都是标识符。
注意点:
- 标识符首字符由字母、下划线、$开始
- 变量由字母、下划线、$、数字组成
- 变量不能以数字开头,可以用中文但不必要
二、数据类型(shift双击问题)
- 强类型语言
-
- 要求变量使用严格符合规定,所有变量需要先定义才能使用,安全性高。
- 弱类型语言
Java数据类型分类
public class Demo2 {
public static void main(String[] args) {
// 八大基本类型
// 整数
int t1=65536*32767;
byte t2=127;
short t3=32767;
long t4=100000L;
// 小数:浮点型
float f1=3.9F;
double f2=454.345;//更大
//字符,和ASCII码相关
char grade='A';
//字符串,String 类
//布尔型
boolean b=false;
}
}
双击shift问题
一、引言
我们在使用IDEA时,有时候在切换中英文输入法的时候,会不小心按了两次shift键,从而弹出 全局搜索框 ,让人不耐其烦,每次都要手动关闭这个搜索框。
二、取消双击shift
1.按ctrl+shift+alt+/ 在弹出的框中选择注册表(registry…)
2.找到ide.suppress.double.click.handler选项,选中打上勾,然后点close。
扩展:
整数进制转换
浮点数问题
float和double是有限的,离散的,会四舍五入,都是约等于
所以有时候float类型的不等于double类型,因为舍入的精确位数不同
如果银行业务需要更高的精度,使用BigDecimal类
字符的本质都是数字,各种编码表示,比如中文也是一个数字,转义字符比如\n,\t,\a…
类型转换
低----------------------------------------------------------->高
byte,short,char–>int–>long–>float–>double
- 强制类型转换 (int)a 高到低,可能出现内存溢出
- 自动类型转换 低到高顺其自然即可
三、变量、常量、作用域
Java变量是程序中最基本的存储单元,包括了变量名,变量类型和作用域。
- 变量必须声明它的类型
- 变量名必须合法
- 变量声明以分号结尾
public class Demo4 {
// 属性:变量
static int classVariable=0;
// 常量
static final double PI=3.1415926;
// main
String str="hhh";
public static void main(String[] args) {
//局部变量:声明并初始化才可使用
float f=1.1f;
//调用实例变量,属于对象,new 对象即可使用
System.out.println(new Demo4().str);;
}
// 方法
public void fun() {
}
}
常量使用关键字final 定义,是一个特殊的变量,值不会被改变。
变量的命名规范
- 所有变量、方法、类名最好见名知意
- 类成员 变量驼峰式命名testFirst
- 常量 大写和下划线组成
- 类名 首字母大写,并且使用驼峰式
- 方法名 首字母小写和驼峰式
四、运算符
Math类是很方便的算术工具类 Math写了之后很多方法都可以点出来
public class Demo6Summary {
public static void main(String[] args) {
int a = 10;int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
//字符串连接符+ , string
System.out.println(""+a+b);//输出字符串
System.out.println(a+b+"");//运算后变成字符串
//理解优先级,优先级高的先运算,最高的是()
}
}
五、包机制、JavaDoc
包的本质就是文件夹
作用:命名可能会出现很多重复,用包隔开文件即可重复命名并不冲突。
//包语句语法格式,文件夹分别后会自动加在第一行
package p1.[p2.[p3...]];
//一般利用域名倒置作为包名
//为了使用某个包中的成员,可以导入该包使用,语法如下
import p1.[p2.[p3...]].classname|*
JavaDoc(文档注释)
javadoc在命令行中可以生成自己的
/**
* @author along
* @version jdk9
*/
public class Doc{
/**
* 求输入两个参数范围以内整数的和
* @param n 接收的第一个参数,范围起点
* @param m 接收的第二个参数,范围终点
* @return 两个参数范围以内整数的和
*/
public int add(int n, int m) {
int sum = 0;
for (int i = n; i <= m; i++) {
sum = sum + i;
}
return sum;
}
}
在文件所在文件夹中打开cmd 运行“javadoc -encoding UTF-8 -charset UTF-8 Doc.java ” 因为出现乱码,所以加了这两个字符集设置。
最后可以生成Doc相关的API网页
Java进阶语法
文章目录
- Java特性和优势
- java三大版本
- JDK、JRE、JVM(从前到后包含)
- Java开发环境搭建步骤
- Java程序运行机制
- IDE
- Java基础语法
- 一、注释、标识符、关键字
- 二、数据类型(shift双击问题)
- 三、变量、常量、作用域
- 四、运算符
- 五、包机制、JavaDoc
- Java进阶语法
- 一、Scanner用户交互(输入)
- 二、for迭代器(debug学习)
- 三、方法
- 四、数组
- 五、面向对象
- 六、异常
一、Scanner用户交互(输入)
用户交互是在java.util中的Scanner,要导入所在包
基本语法:
Scanner sc = new Scanner(System.in);
通过Scanner类的next()和nextLine()方法拿到输入的字符串,判断是否还有输入的方法是hasNext()和hasNextLine()
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("next接收:");
if(sc.hasNext()){
int number=sc.nextInt();
System.out.println(number);
}
//IO流的类最好用完就关闭,否则会占用资源
sc.close();
}
}
其中next()接收遇到空格会停止,nextLine()读取行
package com.along2;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
if(sc.hasNextInt()){
int num=sc.nextInt();
System.out.println(String.format("输出num=%d", num));
}else{
System.out.println("请输入整数!!");
}
sc.close();
}
}
二、for迭代器(debug学习)
if,else,switch,break,continue省略,几乎每个语言都有,差别不大
while,dowhile,for基础也差不多
package com.along2;
public class Demo3 {
public static void main(String[] args) {
int [] a={1,2,3,4,5,6,7,8};
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
for(int x:a){
System.out.println(x);
}
}
}
学习debug
用循环控制*符号设计一个梯形
package com.along2;
public class Demo4 {
public static void main(String[] args) {
for(int i=0;i<4;i++){
if(i<1)continue;
for(int j=4;j>i;j--){
System.out.print(" ");
}
for(int j=0;j<2*i;j++){
System.out.print("*");
}
System.out.println();
}
}
}