day 1
Java
java是一种有自己数据结构和语法的语言
一.java开发三个方向
javaSE: java来做桌面程序开发 (基础!)
javaEE: web方向开发(重心)
javaME: 嵌入式开发
二. 开发工具介绍(IDE-Integrated Development)
工欲善其事必先利其器!
1. Eclipse : 开源 , 插件
2. MyEclipse: j2EE 集成开发环境,收费
3. Intellij IDEA: JetBrains
三. 开发环境准备
1.JDK安装
2.环境变量配置
PATH : 指向java安装的 bin 目录
CLASSPATH: 为类路径,java运行时查找类文件的路径,java的环境变量
在“系统变量”选项区域中查看PATH变量,如果不存在,则新建变量 PATH,
否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起始位置添加%JAVA_HOME%
\bin;%JAVA_HOME%\jre\bin;或者是直接%JAVA_HOME%\bin;
在“系统变量”选项区域中查看CLASSPATH 变量,如果不存在,则新建变量CLASSPATH,否则选中该变量,
单击“编辑”按钮,在“变量值”文本框的起始位置添加.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
测试: doc命令行窗口输入 javac
如图为环境变量配置完成
四.public: 公共的
class: 定义类的修饰符
Day1: 类的名称
public class Day1{
}
入口函数:
public static void main(String[] args){
}
演示小程序:
一个java源文件, 有且仅有一个public class, 并且这个class的名字,必须要和文件名称一致.
对于我们定义一个类来说,类名按照规范必须首字母大写.
类名满足驼峰规则.
一个可执行的java程序:
必须有一个入口函数,在java中是定义为main函数.
//方法名 main
public static void main(String[] args)
//调用jdk的方法库,来完成在控制台打印
System.out.println("");
//main方法, 不是必须的
//执行的时候必须有main方法.
注意: 一个文件只允许有一个public 的 类,且该类的名称必须与文件名称一致
五.变量
1.java中如何定义变量,语法:数据类型 变量名;
2.如何给变量赋值,语法;变量名=值;
3.变量的本质是什么?
变量就是内存中的一块空间,这块空间有“类型”,“名字”,“值”
为什么要有变量:
程序实际就是数据的处理计算,只不过是复杂程度各不相同。所以要处理数据,就涉及数据的获取保存,
以便可以随时取出使用或者保存中间过程的值。因此就需要内存来对数据进行临时的存放。
1.定义变量:
指定变量的类型和名称
2.初始化变量:
定义变量的同时给一个初始值
3.变量赋值
给定义好的变量赋予一个新的值
定义变量的规则:
1. 必须先声明,赋值才可以使用
2.变量可以重新赋值,但不可以重新声明
常量:
使用final 修饰符修饰的变量,为常量值,在声明的时候必须初始化值,
且值不可修改。
编码规范要求: 常量名必须大写
final int testFianl
1.整数
区别在于表示数的大小范围
byte: 1个字节 (-128 - 127)
short: 2个字节(-32768 - 32767)
int: 4个字节 (-2147483648 - 2147483647)
long: 8个字节
一个字节等于8bit
2.浮点数
float: 4个字节
double: 8个字节
3.boolean
值true/false
4. 字符类型
char: 2个字节
单个字符.
六 类型转换
1.基本数据类型之间的转换
a.自动转换
int a = 1.2;
double b = 3;
b.强制转换
int a = (int)1.2;
计算过程中的转换:
int a = 3;
int b = a +3.4;
常用 DOS: 命令
dir: 罗列当前盘符下面的目录和文件
md: 创建目录
rd: 删除目录
cd: 进入目录
del: 删除指定磁盘,目录中的一个或者一组文件
ren: 对指定磁盘,目录中的一个文件或者一组文件更改名称
cls:清屏
day2
一.运算符
1.算术运算符
+,-,*,/都是比较简单的操作,简单演示即可
+的几种作用:
加法
正数
字符串连接符
除法的时候要注意一个问题:
整数相除,只能得到整数
要想得到小数,可以*1.0
/和%的区别
++和--的应用
单独使用效果相同
参与运算使用,在操作数的前后效果不同
2.赋值运算符
符号:
= , +=, -=, *=, /=, %=
=为基本的赋值运算符,其他的为扩展的赋值运算符
如下操作写出结果
int a,b; a = b = 10;
System.out.println(a); System.out.println(b);
int a = 10; a += 20; System.out.println(a);
面试题
short s=1, s = s+1; short s=1, s+=1;
上面两个代码有没有问题,如果有,那里有问题
3.关系运算符
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” 。
4.逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
5.位移运算符
位运算符的细节 | |
<< | 空位补0,被移除的高位丢弃。 |
>> | 被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,最高位补1。 |
>>> | 被移位二进制最高位无论是0或者是1,空缺位都用0补。 |
& | 任何二进制位和0进行&运算,结果是0; 和1进行&运算结果是原值。 |
| | 任何二进制位和0进行 | 运算,结果是原值; 和1进行 | 运算结果是1。 |
^ | 任何相同二进制位进行 ^ 运算,结果是0; 不相同二进制位 ^ 运算结果是1。 |
6.三目运算符
格式
(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。
条件运算符练习
1.获取两个整数中的最大值
import java.util.Scanner;
//导包
public class c {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//录入数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
int max = (a>b)?a:b;
System.out.println("两个整数中的最大值是:"+max)
;
}
}
2.获取3个整数中的最大值
package ssr.bluehole;
//导包
import java.util.Scanner;
public class ssr2 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//录入数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
System.out.println("请输入第三个数据:");
int c = sc.nextInt();
//使用第三方变量并使用三元运算符
int t = (a>b)?a:b;
//定义最大值变量
int max = (t>c)?t:c;
System.out.println("最大值是:"+max);
}
}
.3.比较两个整数是否相同
package ssr.bluehole;
import java.util.Scanner;
public class ssr3 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//录入数据
System.out.println("请输入第一个整数:");
int a= sc.nextInt();
System.out.println("请输入第二个整数:");
int b= sc.nextInt();
//定义变量
boolean flag = (a==b)?true:false;
System.out.println(flag);
System.out.println("------------------------------");
}
}
2.键盘录入数据
键盘录入数据概述
我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改进为键盘录入,提高程序的灵活性。
如何实现键盘录入数据呢?(目前先记住使用)
导包(位置放到class定义的上面)
import java.util.Scanner;
创建对象
Scanner sc = new Scanner(System.in);
接收数据
int x = sc.nextI3