1 注释
程序中的注释是为了提高程序的可读性。一个程序中有30%的注释的量。
注释是不会被编译的。
java中的三种注释
①单行注释
// 这里就是注释的内容
②多行注释
/*这里是多行注释*/
③文档注释
为Type、Method、Field这些内容做的特殊的注释,这些注释最终可以生成程序文档。
/**
*这里是文档注释
*/
/**
*@company 极客营
*@author www.igeehome.com
*@version 1.1
*/
public class Demo1{
/**
*@description
*/
public static void main(String [] args){
//这里是单行注释
System.out.println("igeek");
/*
这里是多行注释
就是多行
*/
}
}
2 关键字
在java程序中有特殊意义的单词称之为关键字。例如 class、public等等。
关键字在编辑工具中都是以高亮色显示的。
java中还有部分保留字符,比如:goto。
关键字不能作为类名,变量名,方法名等。
3 Eclipse
3.1Eclipse的安装
下载位置:https://www.eclipse.org/downloads/
Eclipse是绿色版的,解压就可以用了。
Eclipse在打开时需要设置workspace,这个workspace就是存储在Eclipse中编写的代码的。
由于我们下载的是EE版的。但是我们现在写的javaSE的程序,所有我们需要调整Eclipse的视图。
在右上角:
在Eclipse中所有的java类都是写在项目(工程)中的。所以必须先创建工程,才能写程序。
中右键new-project,或者菜单的file中new-project。
项目结构:
src是放源程序的位置,JRE System Library 系统库
在Eclipse中添加一个类,在src上右键创建class。或者使用class的快捷方式。
Tips:java中所有的类名,首字母必须大写。
3.2Eclipse的字体调整
行号:show Line Numbers
字体大小及颜色:
Window-Preferences-General-Appearance-Colors And Fonts-Java-Java Edit Test Font
控制台:…-Debug-Console font
其他文件:…-Basic-Text Font
窗体弄乱了:Windows-Perspective-Reset Perspective
找不到控制台:Windows-Show View-Console
3.3Eclipse的快捷键
内容辅助键 alt+/: (其实就是快速提示)
自动导包:ctrl+shift+o 自动导包。
快速单行注释: ctrl+/ 再按一次就是取消注释
快速多行注释:ctrl+shif+/ 多行注释。
删除一行 : ctrl+d
调整格式:ctrl+shif+f (输入法不能是中文输入法)
3.4删除和导入项目
删除项目:
如果选择Delete project contents on desk 就会将磁盘上的项目文件同时删除,如果没有选择,则只是删除Eclipse中的引用,磁盘上的文件是没有被删除。
导入项目:
4 语法格式
4.1常量
在程序执行的过程中,其值不可以发生改变的量
常量分类:
字符串常量用双引号括起来的内容(“HelloWorld”)
整数常量 所有整数(12,-23)
小数常量 所有小数(12.34)
字符常量 用单引号括起来的内容(‘a’,’A’,’0’)
布尔常量 较为特有,只有 true 和 false
空常量 null(数组部分讲解)
4.2变量
存储数据的最小单元。
其实就是给内存的某个区域取一个别名,方便记忆和操作。
区域的别名就是变量名。里面的数据就是变量的值。
4.3数据类型
内存中要存储不同的类型的数据,需要不同的空间。
为什么要数据类型?人类识别任何信息都是分类识别的。所以程序中同样需要对数据进行分类处理。
Java语言中的数据类型的分类:
基本数据类型
字符型:表示一个字符。例如'a','1','。','美','+'
char在不同的系统中所占的字节可能是不一样的。
boolean:在java只有true或者false。 不讨论所占位置。
引用数据类型:处过基本数据类型,其余的都是引用数据类型。
4.4 变量的定义和使用
java语言是强数据类型的语言。在使用一个数据之前,必须明确该数据是什么类型的。
在使用变量之前必须先明确变量的类型。
变量的申请(开房)语法: 数据类型 变量名;
//申请变量
int i;//通知jvm准备一个存储整形数据的空间,并且命名为i。
给变量复制: 变量名 = 变量的值;(入住)
//给变量赋值
i = 1000;
申请变量的同时赋值:
//申请的同时赋值
int x = 100;
使用变量:直接使用变量的名称即可。
System.out.println(i);
System.out.println(x);
tips:java中的变量必须在赋值之后才能使用。
如果不复制就使用,则报语法错误:
4.5变量名的命名规则和规范
规则:法律 绝对不能触犯
规范:道德 好人一定会遵守
规则:
①不能使用java的关键字和保留字符
②不能以数字开头
③不能有特殊符号(空格,运算符,标点符号等)
规范:
①如果只有一个单词,则所有的字母全部小写。
②如果有多个单词,则第一个单词的所有字母小写,其余单词的首字母要大写。(驼峰规则)
③言简意赅。如果英文不好就是拼音。
4.6各种类型变量的赋值方式
package com.igeek.demo1;
/**
* @company 武汉极客营
*
* @author www.igeekhome.com
*
* 2019年8月13日下午2:31:28
*/
public class Demo3 {
public static void main(String[] args) {
//byte类型 范围不能超过-128~127
byte b = 127;
//short 不能超过short的范围
short s = 3534;
//int 不能超过整形的范围
int i = 654;
//char 引号中只能写一个字符
char ch = '美';
//long 理论上应该在数字后面使用l\L表示该数值是长整型
long l = 6546546546456L;
//float 应该在小数的后面使用f\F表示该数值是浮点型
float f = 12.5F;
//double 理论上应该使用d\D表示该数值是双精度型,可以省略不写
double d = 12.5;
//boolean 只有true或者false两个值
boolean flag = true;
//引用类型String 字符串
String str = "igeekhome";
}
}
4.7数据类型转换
隐式数据类型转换(自动类型转换):取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
从上面的图中可以看出,小类型到大类型可以自动转换。
package com.igeek.demo1;
/**
* @company 武汉极客营
*
* @author www.igeekhome.com
*
* 2019年8月13日下午2:41:51
*/
public class Demo4 {
public static void main(String[] args) {
int score = 98;
//小类型到大类型可以自动转换
long score1 = score;
//大类型到小类型需要强制类型转换
int score2 = (int)score1;
}
}
强制类型转换语法: (目标类型)数值;
类型转换要参考数据类型的大小表格。
小数强制转换为整数:
double x = 12.8;
//强制类型转换丢失精度
int y = (int)x;
System.out.println(y);// 12
几个小问题:
在数字的后面添加了L后解决问题。
当写了一串数字后,默认情况下编译期编译器认为它是整形的。
所有的小数默认情况下都是double类型,所以报错。
char类型可以转换为int,是自动转换的。
int x = 'a';
System.out.println(x);//97
x = 'A';
System.out.println(x);//65
x = 97;
char ch1 = (char)x;
System.out.println(ch1);//a
4.4运算符
运算符:对常量和变量进行操作的符号称为运算符
表达式:用运算符把常量或者变量连接起来符号 java 语法的式子就可以称为表达式不同运算符连接的式子体现的是不同类型的表达式
算数运算符: +,-,*,/,%,++,--
赋值运算符:=,+=,-=,*=,/=
//一个=就是赋值运算符。 将运算符右边的值赋值给左边的变量。
int x = 10;
int y = x;
//算数运算符
int z = (x + y) * 10 / 2;
System.out.println(z);
//特殊的复制运算符
int n = 10;
n+=x;// n = n + x;
System.out.println(n);
一个只有算数运算符的表达式的结果类型取决于该表达式中类型最大的操作数。
x + 1.0的结果取决于1.0,所以其结果是double类型的,不能复制给int类型的y。
解决方案就是:让两边的数据类型一致即可。
int n = 5;
int m = 5 / 2;
System.out.println(m);// 2
++和-- 属于一元运算。只有一个操作数。
a++ , b--, ++a, --b;
++是给操作数+1,--自己思考是什么意思!
package com.igeek.demo1;
/**
* @company 武汉极客营
*
* @author www.igeekhome.com
*
* 2019年8月13日下午3:09:59
*/
public class Demo7 {
public static void main(String[] args) {
int x = 10;
int y = x++ ;//++在后先运算,在++
int z = ++x;//++在前先++,在运算
int m = z + x++;
System.out.println("x = " + x );//12
System.out.println("y = " + y);//10
System.out.println("z = " + z);//12
System.out.println("m = " + m);//24
}
}
int a = 3;int b =4;
int c = a ++ + ++b;
关系运算符:>,>=,<,<=,==,!=
逻辑运算符:!,&&,||
一个表达式中如果出现了关系运算符或者逻辑运算符,则该表达式的结果一定是boolean
public static void main(String[] args) {
// 关系运算符:>,>=,<,<=,
//==判断两个数值是否相等
//!= 判断两个数值是否不相等
int x = 3,y = 4;
boolean f = x > y;
System.out.println(f);
//! 将原来的值反过来
//&& 用来链接两个boolean值的表达式的。如果两边同时为true则整个表达式的结果为true,其余的都是false
f = x > 2 && y >3;
System.out.println(f);//true
f = f && y > x && 10 > 9;//true
//|| 两边同时为false时才是false,其余情况都是true
f = x > 5 || y > 5; //false
}
三元运算:表达式1?值1:值2 如果表达式1的结果为true,则整个表达式的结果是值1,否则就是值2;
package com.igeek.demo1;
/**
* @company 武汉极客营
*
* @author www.igeekhome.com
*
* 2019年8月13日下午3:23:24
*/
public class Demo9 {
public static void main(String[] args) {
int javaScore = 95;
String str = javaScore>90?"面试宝典":"java基础";
System.out.println(str);//面试宝典
}
}
4.5键盘录入
键盘录入的步骤
①在类的上方:类名的上方,包的下方导入Scanner类。
import java.util.Scanner;
②在main方法中创建Scanner对象;
Scanner sc = new Scanner(System.in);
③录入一个字符串
//获取控制台输入的字符串,并且将其赋值给str
String str = sc.next();
④使用sc录入一个整数
//从控制台获取一个整数
int year = sc.nextInt();
System.out.println("您的出生年份是:"+year);
⑤录入一个double类型
//从控制台录入一个double
double money = sc.nextDouble();
System.out.println("您的余额是:"+money);
⑥录入一个字符类型
//从控制台不能录入一个字符,所以用下面的方式录入
char gender = sc.next().charAt(0);
System.out.println("您的性别是:"+gender);