零、复习昨日
一、注释
二、输出语句
三、变量
四、数据类型
五、数据类型转换
六、String
附录: 单词
学习方法: 睡前过电影
1装软件,截图贴图常用,typora工具记笔记(ctrl+1标题)
2java发展 94年左右,詹姆斯.高斯林,目前在用(常用)的版本8,目前公司是Oracle
3java课程安排
4jdk,环境变量
5HelloWorld程序
6idea安装破解使用
7typora工具记
1 java执行的过程
1)先编写
2)再编译 javac
3)后执行 java2 写出java主方法的格式
public static void main(String[] args){}3 类名的命名规范, 首字母大写后续字母小写,多个单词首字母也大写(驼峰原则)
HelloWorld
包名的命名规范, 反域名+模块,com.qf cn.alibaba ede.xxx4 写出自己总结的写Java程序时需要注意的点
5 单词翻译
file文件,settings设置,string字符串
new新建,open打开,print打印
一个java类文件中只能有一个public修饰的类
但是可以有其他没有public修饰的类
且一个class就会编译产生一个class文件
以上就是Demo1.java文件中有两个类,编译产生2个字节码文件
注释: 对程序解释,注释不参与代码运行
有三种注释的方式:
- 单行注释
- 多行注释
- 文档注释
// 单行注释
/*
多行1
多行2
*/
/**
* 注意是/** 两个星
* 会形成java文档,用于做api文档的s
*/
好的程序,注释占一半以上
要养成习惯,写程序就要写注释,1)给自己看的 2)给别人看的
public class Demo4 {
public static void main(String[] args) {
/**
* System.out.println( );就是输出语句
* 解释: System是java(JDK)内部提供的一个类
* . (点) 调用的意思,系统类的out功能
* . (点) 调用
* print(内容) 将内容打印到控制台,后续 不换行
* println(内容) 将内容打印到控制台,后续会换行
*/
// 演示print(),不换行
// System.out.print(1);
// System.out.print(2);
// System.out.print(3);
// 演示println(),换行
System.out.println(1 );
System.out.println(2 );
System.out.println(3 );
/**
* 补充说明: 输出语句中,
* 输出的内容是字符串的需要加双引号
* 输出的是数字,可以不加引号
*/
}
}
打印古诗
写四个输出语句,但是输出的结果是上面那样2行
ps:别忘了标题和作者(居中)
System.out.println(" 劝学" );// 空格
System.out.println(" 颜真卿[唐]" );
System.out.print("三更灯火五更鸡,");// 不换行
System.out.println("正是男儿读书时。");// 换行
System.out.print("黑发不知勤学早,");//不换行
System.out.println("白首方悔读书迟。");
什么叫变量? 会变化的量
为什么需要变量? 程序,生活,有些数据不是一成不变的,需要变量来装载数据,达到变化的效果
变量的作用: 就是一个容器,装数据的
例如: 余额money,年龄age等等
如何写?
- 1先声明(定义)
- 2后赋值
- 3再使用
// 在java中,变量的定义写法: 数据类型 变量名; // 赋值的语法: 变量名 = 值; // 使用的语法: 可以输出,运算
变量命名:
- 建议都是英文
- 首字母小写,如果有多个单词,后续单词首字母大写,例如学号stuNo stuName
- 数字不能放开头,不能使用#%等
写哪里?
- 目前,每天的代码都要写在主方法内
public class Demo5 {
// 代码要放在main方法内
public static void main(String[] args) {
// --------- 第一次演示 ------------
// 1先声明(数据类型 变量名;)
int age; // 声明整型变量,准备存储数据
// 2再赋值(变量名 = 值;)
age = 18;// 将18赋值给变量age
// 3再使用(可以用于输出语句)
System.out.println(age);
// --------- 第二次演示 ------------
// 一般 声明赋值 会写在一起
int num = 1;
// --------- 第三次演示 ------------
// 变量不能重复定义
// 但是可以重复赋值和使用
// int age = 20; // 不能重复定义
age = 20; // 变量的值被重新赋值
System.out.println(age );
// --------- 第4 ------------
// 总结: 发现代码是在main方法内,从上至下依次逐行执行
}
}
Ps: 注意代码风格,缩进,换行,空行,注释,符号两边的空格
什么叫数据类型? 一个数据的类型
为什么需要数据类型? 为了区分数据格式,好进行代码运算执行
java中有哪些数据类型?
- 基本数据类型(今天重点)
- 四类八种
- 引用数据类型(后续学习)
- 数组,类,接口
四类八种
特别强调: String不是基本数据类型
public class Demo6 {
public static void main(String[] args) {
/**
* 整型之byte
* byte 字节
* 1byte=8bit(位)
* 即代表+-2^7个数 (即256个数)
* 具体是-2^7 ~ +2^7-1
* -128 ~ 127
* --------------
* byte字节数据,一般用在数据传输,当字节流去使用的
*/
// 声明byte类型的变量
byte b = -128;
System.out.println(b );// 这是输出变量b的值
System.out.println("b" );// 这是输出字符串b
/**
* 整型之short
* 1short=2byte=16bit
* 共65536个数
* -32678 ~ 32767
* -------------------
* 很少用
*/
short s = -32768;
/**
* 整型之int
* 1int=2short=4byte=32bit
* +-21亿左右
* 一般无要求的话,整数默认用int
* ------------------
* 程序中默认出现的整数是int
*/
int i1 = 2147483647;// 正值最大值
int i2 = -2147483648;// 负值最大值
/**
* 整型之long
* 1long=2int=4short=8byte=64bit
* 非常大,百兆左右
* long数据定义时需要加L
* -----------
* 当int装不下时候用!
*/
long l = 21474836480L;
// ===================================================
/**
* 浮点型之float
* float 32位
* 表示的精度: 8位(8个数字)
* ---------------
* 程序中写出来任何小数,默认都是double类型
* float需要加f/F
* 单精度小数点
*/
float f = 1.1234567890F;
float f2 = 11.234567890F;
float f3 = 12345678.1234567890F;
System.out.println(f );
System.out.println(f2 );
System.out.println(f3 );
/**
* 浮点型double
* 程序中写出来任何小数,默认都是double类型
* 也可以在后面加d/D
* double64位,精度更准确
* 可以表示最多小数点后16位
* 所以,称之为 双精度
* -------------------------
* 没有特殊说明,最常用的小数就用double来定义
*/
double d1 = 1.12345678901234567890D;
double d2 = 11.23456789012345678901D;
double d3 = 112.34567890123456789012D;
double d4 = 1123.45678901234567890123D;
System.out.println(d1 );
System.out.println(d2 );
System.out.println(d3 );
System.out.println(d4 );
// ===================================================
/**
* 字符型
* char,赋值需要使用单引号,且其中有且只有一个字或符号
* 即char单表单个字符
*/
char ch = '1';
char ch2 = 'a';
char ch3 = '中';
char ch4 = '+';
System.out.println(ch );
System.out.println(ch2 );
System.out.println(ch3 );
System.out.println(ch4 );
/**
* char有特殊用法,
* 它被数字直接赋值(0-65535)
* 其中0-127,符合ascll值
*/
char ch5 = 65;// 代表A
char ch6 = 97;// 代表a
System.out.println(ch5 );
System.out.println(ch6 );
/**
* char更特殊的用法(了解即可)
* char还可以使用Unicode编码赋值
*/
char ch7 = '\u4e00';
System.out.println(ch7 );
/**
* 布尔型
* boolean,只有两个值 true和false
* ------------------
* 主要用于后续控制语句(判断语句,循环语句等)
* 即进行逻辑运算
*/
boolean bo1 = true;
boolean bo2 = false;
}
基本数据类型有8个,但是最常用的
- int,只要定义整数就用int
- double , 只要定义小数就用double
变量名不能重复
数据类型转换,就是类型的相互转换
为什么需要转换? 有时候类型不确定
怎么转换?
- 小向大默认
- 大向小,强制
- 强制转换可能丢失精度
public class Demo7 {
public static void main(String[] args) {
// ------------- 整型之间 -----------
/**
* 类型转换有两种情况
*/
// 大小指的是表示范围
// 小转大,默认进行(允许进行)
byte b = 127;
int a = b;// byte转换成int类型,ok
long lo = a;// int转换成long,ok
System.out.println(a );
System.out.println(lo );
// 大向小,默认不允许,会报错
long lo2 = 1L;
// int a2 = lo2;// long转成int,不行!!
int a3 = 1;
//short s = a3;// int转成short,不行
/**
* 大向小,默认不允许,会报错
* 但是,允许强制转换,在数据前面使用转换符号();
* ()内写目标类型
* 但是强转,可能造成数据精度丢失
* --------
* 当大范围类型的变量,所存储的数据转成小范围类型时如果能装下,就不会丢失精度
* 当大范围类型的变量,所存储的数据转成小范围类型时如果能装不下,就会丢失精度
*/
int a4 = 129;
byte b4 = (byte)a4;// 强制类型转换,简称:强转
System.out.println(b4 );
// ------------- 浮点型之间 -----------
//小转大,默认进行(允许进行)
//大向小,默认不允许,会报错
//但是,允许强制转换,在数据前面使用转换符号();
//这三句话对浮点型之间的转换一样适用
float f1 = 1.1F;
double d1 = f1;// 可以进行
//f1 = d1;// 大向小,不行!!
f1 = (float) d1;
System.out.println(f1 );
// ------------- 整型和浮点型之间 -----------
// 整型转浮点型默认进行
// 浮点型转整型需要强制
int a5 = 1;
float f5 = a5;// 整型转浮点型默认进行
System.out.println(f5 );// 1.0
float f6 = 1.9F;
int a6 = (int)f6;// 浮点型转整型需要强制
System.out.println(a6 );
// ------------- 字符型和整型之间 -----------
char ch1 = 65535;// int转char,看情况
int a7 = 'A';// char转int,可以
// ------------- boolean不参与转换 -----------
}
}
String代表字符串,不是基本类型,是引用类型中类中的一个.
用法也是当数据类型去用,去修饰变量的,注意使用
双引号
,例如String username = “老王”;
public class Demo8 {
public static void main(String[] args) {
// 字符串需要使用String声明,内容需要双引号
String name = "李青";
name = "瞎子";
// 用于声明多个字符数据的,所以叫做字符串
System.out.println(name );
// 输出语句中,可以通过字符串+变量的形式,展示输出内容
System.out.println("打野英雄: " + name );
}
}
declared 定义
duplicate (读作 丢普类k特) 重复
line 行
Variable 变量
init 初始化(第一次赋值)
* 快捷键
* ctrl+y 删除一行
* ctrl+d 向下复制一行
* alt+enter 万能键
* shift+enter 快速换行