目录
模块一 Java入门
人机交互
Java的前世今生
Java为什么这么火
JRE和JDK
模块二 - 小概念
注释&关键字
字面量
变量
计算机的存储
window mac 施乐 ->第一个图形化界面 乔布斯 vs 比尔盖茨
使用图形化界面 缺点 :1.消耗内存 2.运行速度慢
CMD:在windows中 利用命令行的方式操作计算机
可以打开文件,打开文件夹,创建文件夹等等。
打开CMD
1.win+R
2.输入cmd
3.回车
(Desktop也是一个文件夹)
常用CMD命令
盘符名称+冒号
说明:盘符切换
举例:E:回车,表示切换到E盘
dir(会将一些你隐藏的东西都全部展示出来)
说明:查看当前路径下的内容
cd目录
说明:进入单级目录
举例:cd yjy(如果文件名太长 那么可以打输入一部分 然后按tab键)
cd..
说明:回退到上一级目录
cd 目录1\目录2\...
说明:进入多级目录。
举例:cd yju\java
cd \
说明:回退到盘符目录。
cls
说明:清屏
exit
说明:退出命令提示符窗口。
练习:需求:利用cmd命令打开自己电脑上的QQ
Java概述和学习方法
Java是什么?->一门非常火热的编程语言
Java程序初体验
下载JDK
常见问题:标点符号必须英文符号,单词拼写该大写必须大写
环境变量:java 和 javac 配置好了环境变量
Java跨平台原理
JVM(Java Virtual Machine):Java虚拟机,真正运行Java程序的地方
类名要和文件名保持一致
小技巧:点击一下文件名 按F2 再ctrl+c 再回代码ctrl+v
null不能直接打印 那么只能用字符串进行打印
当某个数据经常发生改变时,我们也可以用变量存储.当数据变化时,只要修改变量里面记录的值即可.
数据类型 变量名 = 数据值;
变量的使用方式:输出打印 参与计算 修改记录的值
变量的注意事项:只能存一个值
变量名不允许重复定义 一条语句可以定义多个变量 变量在使用之前一定要进行赋值
二进制
long类型变量:需要加入L标识(大小写都可以)
float类型变量:需要加入F标识(大小写都可以)
就是给类,方法,变量等起的名字
什么是原码?
原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负
56--->00111000
8*bit(比特位)=1*byte(字节)最大值0111111->+127 最小值11111111->-127
利用原码对正数进行计算是不会有问题的.
原码的弊端: 10000001-> 实际值-1(转成十进制) 二进制(-0+1=1)
但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的.
反码:为了解决原码不能计算负数的问题出现的
计算规则:整数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0.
-56->10111000(原)
-56->110001111(反)
左移 *2
if-else if -if
switch
default 省略的话语法不会有问题但是不推荐这么做
case的穿透性:如果没有写break会执行下一个语句 直到遇到break或者}为止
switch新特性
int number=10;
switch (number) {
case 1-> System.out.println("一");
case 2-> System.out.println("二");
case 3-> System.out.println("三");
default ->System.out.println("没有这个选项");
for
while
do...while
练习:判断一个数是不是回文数
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数字:");
int num= sc.nextInt();
int result=0;
int temp=num;
while(num!=0){
int g =num%10;
num/=10;
result = result*10+g;
}
System.out.println(result);
if(result==temp){
System.out.println("true");
}
else{
System.out.println("false");
}
练习:
//求商和余数 //给定两个证书被除数和除数(都是正数,且不超过int) //两个数相除不能使用乘法除法和%.得到商和余数
// 被除数/除数=商...余数
Scanner sc=new Scanner(System.in);
System.out.println("请输入被除数:");
int num1=sc.nextInt();
System.out.println("请输入除数:");
int num2=sc.nextInt();
int shang=0;
while(num1>=num2){
num1=num1-num2;
shang++;
}
System.out.println("商为:"+shang);
System.out.println("余数为:"+num1);
//逢七过 //每个人报数 报到包含7或者7的倍数要喊:过 //打印出1-100之间数字式7或者是7的倍数的数据
public class learn {
public static void main(String[] args) {
int i=0;
for(i=1;i<=100;i++){
if(i%7==0||i%10==7||i/10%10==7){
System.out.println("过");
continue;
}
System.out.println(i);
}
}
}
//键盘输入一个大于等于2的整数x 并返回x的平方根 //结果只保留整数部分,小数部分将被舍去 //10 //1*1=1 //2*2=4 //3*3=9<10 //4*4=16>10 //推断10的平方根在3-4之间
import java.util.Scanner;
public class learn {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
//从1开始循环判断
for(int i=1;i<=number;i++){
//i*i num
if(i*i==number){
System.out.println(i+"就是"+number+"的平方根");
break;
}
else if(i*i>number){
System.out.println((i-1)+"就是"+number+"的平方根");
break;
}
}
}
}
import java.util.Scanner;
public class learn {
public static void main(String[] args) {
//求质数
//标记思想
//简化思路:
//81 1*18(质因子) 3*27 9*9
//以81的平方根9为中心 且a*b==81 那么a与b中必定有一个是小于等于9的 另一个大于等于9
boolean flag=true;
Scanner sc= new Scanner(System.in);
System.out.println("请输入一个数字:");
int number =sc.nextInt();
if(number==1) {
System.out.println("1不是质数");
}
for (int i=2;i
import java.util.Random;
import java.util.Scanner;
public class learn {
public static void main(String[] args) {
//猜数字 随机生成1-100的随机数字 你猜一下
//扩展小要求
//抽奖游戏 保底
int count=0;
//获取随机数
//1.导包
//2.创建对象
Random r =new Random();
//3.生成随机数
//判断技巧 范围从0-这个数减一
int number = r.nextInt(100)+1;
//生成任意数到任意数之间的随机数 7-15
//1.让这个范围头尾都减去一个值,这个范围从0开始 0-8
//2.尾巴+1 8+1=9
//3.最终的结果,加上第一个减去的值
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("请输入你要猜的数字");
int guess = sc.nextInt();
count++;
if(count==3){
System.out.println("猜中");
break;1
}
if(guess>number){
System.out.println("猜大了");
} else if(guess
数组初始化的两种方式:
静态初始化
数组名.fori->快速生成数组的方式
//定义一个数组,存储1,2,3,4,5
//遍历数组得到每一个元素 求数组里面所有元素的数据和
//定义一个数组,并添加数据1,2,3,4,5
int[] arr={1,2,3,4,5};
int sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
System.out.println(sum);
动态初始化
数组的内存图
什么是方法?
方法(method)是程序中最小的执行单元 提高代码复用性和可重复性
方法定义和调用 跟自定义函数有点像
方法重载:
方法名一样且在一个类里面
Java虚拟机会通过参数不同