在第一周,我主要学习了Java的一些基础知识和了解了一下算法与数据结构和markdown语法,我发现在Java的许多基础知识中有许多是和C语言类似的,主要的学习参考是学习的B站上的黑马程序员,以下是我这周的学习记录与笔记
day1
打开CMD
1.Win + R
2.输入 cmd
常见CMD命令
- 盘符名称+冒号
盘符切换
E: 切换到E盘 - dir
查看当前路径下的内容 - cd目录
进入单级目录 - cd ..
回退到上一级目录 - cd 目录一\目录二...
进入多级目录 - cd
回退到盘符目录 - cls
清屏 - exit
退出命令提示符窗口
为什么要配置环境变量?
我们想要在任意的路径下都可以打开一个指定的软件,就可以把软件的路径配置到环境变量中。
设置环境变量
此电脑属性->高级系统设置->环境变量->在path中新建一个软件的路径
在CMD中直接输入软件的名称即可打开软件
下载的java软件
oracle
javac是JDK提供的编译工具,将.java文件编译成.class文件
java也是JDK提供的一个工具,用来运行代码,不加后缀名
Hello world
1.用记事本编写代码
2.编译文件
3.运行程序
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello world");
}
}
day2
配置了环境变量 JAVA_HOME
使用vscode 成功并编译运行了HelloWorld
Java的三大分类
- JavaSE
- JavaME
- JavaEE
Java语言跨平台的原理
- Java语言的跨平台是通过虚拟机实现的
- Java语言不是运行在操作系统里面的。而是运行在虚拟中的.
- 针对于不同的操作系统,安装不同的虚拟机就可以了。
JDK(Java Development kit):Java开发工具包
day3
注释和关键字
- 注释
- 单行注释 //
- 多行注释 /* */
- 文档注释 /** */
*关键字
关键字全部小写 - class关键字表示定义一个类,后面跟随类名.
字面量
public class ValueDome{
public static void main(String[] args){
//整数
System.out.println(666);
System.out.println(-555);
//字符
System.out.println('A');
System.out.println("字符串");
//浮点数
System.out.println(3.14159);
//布尔类型
System.out.println(true);
System.out.println(false);
//空类型null不能直接打印
}
}
\t 制表符
在打印的时候,把前面的字符串补齐到8,或者到8的倍数,最少补一个,最多补8个.
public class ValueDome{
public static void main(String[] args){
//制表符的基本用法
System.out.println("hello"+"world");
System.out.println("hello"+'\t'+"world");
}
}
/*
helloworld
hello world
*/
变量
数据类型:限定了变量能储存数据的类型.
- 一条语句,可以定义多个变量.
- 变量在使用前必须要赋值
不同进制在代码中的表现形式
二进制:以0b开头
十进制:前面不加任何前缀
八进制:代码中以0开头
十六进制:代码中以0x+开头
在计算机中,任意数据都是以二进制的形式来存储的.
基本数据类型
Java语言的数据类型分为:基本数据类型,引用数据类型(暂时不学)
- byte关键字 范围(-128~127)
- long关键字 范围(19位数)
如果要定义long类型的变量,在数据值的后面需要加一个L作为后缀,L建议用大写,(不易与1搞混) - float关键字注意点:定义float类型变量的时候,数据值也需要加一个F作为后缀
4.布尔类型 boolean
取值范围大小关系:double>float>long>int>short>byte
day4
标识符
- 就是给类,方法,变量起的名字.
- 小驼峰命名法:方法,变量
- name firstName
- 大驼峰命名法:类
- Student GoodStudent
键盘录入
Scanner类
package day03;
//1.导包,找到Scanner这个类在哪,要写在类的上面
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
//2.创建对象
Scanner sc = new Scanner(System.in);
//3.接收数据
int i = sc.nextInt();
System.out.println(i);
}
}
两数相加:
//1.导包
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args){
//2.创建对象
Scanner sc = new Scanner(System.in);
System.out.println("输入第一个整数");
int number1 = sc.nextInt();
System.out.println("输入第一个整数");
int number2 = sc.nextInt();
System.out.println(number1 + number2);
}
}
IDEA项目结构介绍
- project(项目)
- module(模板)
- package(包)
- class(类)
- package(包)
- module(模板)
day5
拆分数字
package me.JavaStudy;
import java.util.Scanner;
public class Test {
//主入口
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数:");
int n = sc.nextInt();
int ge = n % 10;
int shi = n / 10 % 10;
int bai = n / 10 / 10 % 10;
System.out.println(ge);
System.out.println(shi);
System.out.println(bai);
}
}
隐式转换(自动类型提升)
- 把一个取值范围小的数值,转成取值范围大的数据.
提升规则
- 取值范围小的,和取值范围大的进行计算,小的先提升为大的.
- byte short char 三种类型的数据在计算的时候,都会直接提升为int型.
当 "+" 操作出现字符串时,是拼接操作,连续进行"+"操作时,从左到右逐个执行
int a = 10;
a += b;
// 等同于 a = (int) (a + b)
Java逻辑运算符(和c略有不同)
短路逻辑运算符(与c相同)
package me.JavaStudy;
public class Test {
//主入口
public static void main(String[] args) {
int a = 10;
int b = 10;
boolean bo = ++a < 5 && ++b < 5;
//当左边的表达式确定最终的结果,那么右边的就不会参与进行
System.out.println(bo);
System.out.println(a);
System.out.println(b);
}
}
//运行结果:
//false
//11
//10
package me.JavaStudy;
public class Test {
//主入口
public static void main(String[] args) {
int height1 = 165;
int height2 = 210;
int height3 = 150;
//三元运算符
System.out.println(height3 > (height1 > height2 ? height1 : height2) ? height3 : (height1 > height2 ? height1 : height2));
}
}
运算符优先级:
day6
正数的原码 = 反码 = 补码
复数的补码 = 反码 + 1
计算机中的存储和计算都是以补码的形式进行的
">>"右移 相当于 *2
"<<"左移 相当于 /2
if(){
}
else{
}
//if用法
package me.Javastudy;
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入票的序号:");
int order = sc.nextInt();
if(order >= 0 && order <= 100){
if(order % 2 == 0){
System.out.println("坐右边");
}
else{
System.out.println("坐左边");
}
}
}
}
//switch case用法
package me.Javastudy;
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int week = sc.nextInt();
switch(week){
case 1:
System.out.println("跑步");
break;
case 2:
System.out.println("游泳");
break;
case 3:
System.out.println("慢走");
break;
case 4:
System.out.println("动感单车");
break;
case 5:
System.out.println("拳击");
break;
case 6:
System.out.println("爬山");
break;
case 7:
System.out.println("好好吃一顿");
break;
default:
System.out.println("输入错误");
break;
}
}
}
package me.Javastudy;
public class Test {
public static void main(String[] args){
//switch JDK12新特性 不用break,也不会case穿透
int number = 1;
switch(number){
case 1 -> System.out.println("一");
case 2 -> System.out.println("二");
case 3 -> System.out.println("三");
}
}
}
0~100数字之间的偶数和
package me.Javastudy;
public class Test {
public static void main(String[] args){
int sum = 0;
for(int i = 0; i <= 100; i+=2){
sum += i;
}
System.out.println(sum);
}
}
给出一个范围,求这个范围中既能被3整除又能被5整除的数字个数
package me.Javastudy;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int left = sc.nextInt();
int right = sc.nextInt();
int count = 0;
for (int i = left; i <= right; i++) {
if (i % 3 == 0 && i % 5 == 0) {
count++;
}
}
System.out.println(count);
}
}
学习的算法与数据结构的内容:
Day1:https://www.cnblogs.com/XYu1230/p/18280591
Day2:https://www.cnblogs.com/XYu1230/p/18281895
Day3:https://www.cnblogs.com/XYu1230/p/18283860
Day4:https://www.cnblogs.com/XYu1230/p/18286031
Day5:https://www.cnblogs.com/XYu1230/p/18286937
在接下来的时间里,希望我能保持这种学习的热情,更加深入的学习Java和算法与数据结构的知识.
标签:Scanner,报告,int,第一周,System,进度,println,public,out From: https://www.cnblogs.com/XYu1230/p/18287431