此文记录自己学习Java基本语法过程中的笔记,用于自己复习。因初次学习,难免有不恰当的地方,仅供各位读者参考。
硬件
输入设备
接受外部的数据,指令
键盘、鼠标、摄像头、扫描仪,麦克风
输出设备
显示、输出内部的数据
显示器、音箱、打印机
存储设备
内存
特点:瞬时存储、易失性、存取速度快
外存
硬盘、U盘、等
特点:永久存储、存储速度慢
存储单位:bit位 b
字节byte B 1B=8b
KB 1KB=1024B
MB 1M=1024KB
GB 1G=1024M
TB
处理器CPU
控制器:分析指令,分配协调其它组件工作
运算器:运算
这些组件是协调进行工作。输入设备–控制器–运算器+存储器–>输出设备
软件
系统软件:Windows,Mac,Linux,Android
图行化的操作系统
DOS:Win+R–》cmd启动
目录切换:cd (change dir)
cd 目录路径名
相对路径:从当前路径开始
绝对路径:从某个盘符的跟路径开始
回到上一级 cd …
跨盘符:盘符名:
注意事项:可以使用Tab进行提示补全
如果路径中含有空格等特殊字符建议路径名加引号
不区分大小写
借助方向上下键使用历史指令
应用软件
QQ、微信
生活中的程序:为了解决某个问题,进行一系列的有序动作
计算机中的程序:为了让计算机帮我们解决某个问题,而编写的一系列有序指令集
机器语言:01010111100000
特点:可读性不高,维护性;执行效率高
汇编语言:借助一些助记符来编写程序,add 1,1 result
特点:可读性有改善;代码很冗长,要求对计算机的硬件组成非常了解。运行速度也比较快
高级语言:a=1 b=2 c=a+b
C语言是鼻祖,C++,C#,Python,Java等
编译型语言:源代码—经过编译器的编译—可执行文件 翻译家:整体翻译-----Java
解释型语言:源代码—经过解释器的解释—从上到下逐行解释执行 同声传译
编译型高级语言、面向对象、跨平台(跨操作系统)、分布式
jvm: java virtual machine java虚拟机
1996年1月,Sun公司发布了Java的第一个开发工具包*(JDK 1.0)*
1998年12月8日,第二代Java平台的企业版J2EE发布。
J2ME(Java2 Micro Edition,Java2平台的微型版):移动端,现在被Android替代
J2SE(Java 2 Standard Edition,Java 2平台的标准版):提供核心功能
J2EE(Java 2Enterprise Edition,Java 2平台的企业版)
2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。
2009年,甲骨文公司宣布收购Sun
2014年,甲骨文公司发布了Java8正式版
JDK
java development kit java程序开发包,供开发用
jre
java runtime environment java运行时环境 ,供java程序
未配置环境变量,会提示
C:\Users\yy>javac -version
‘javac’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
配置环境变量:就是为了在任何目录下都能使用bin目录下的指令
搜索:编辑环境变量配置,在系统变量中
新增:JAVA_HOME:C:\Program Files\Java\jdk1.8.0_333
添加Path: %JAVA_HOME%\bin
CLASSPATH:可以暂不配
1)写源程序(后缀名java)
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!!!");
System.out.println("Hello World!!!");
}
}
2)编译(后缀名是class)
javac 文件名.java
编译成了文件名.class
3)运行
java 文件名
注意点:
1、文件名要与public修饰的class 名一致
2、要用英文命名,每个单词首字母大写,驼峰法,见名知意
3、乱码是编码格式导致的
4、main方法是java程序的入口,有四要素public,static,void,String[]
5、java中开始的大括号一般在行末,结束的大括号跟这个层级对齐
6、每个指令以分号结束
在控制台输出一定的内容,然后换行
System.out.println("hello world");
在控制台输出一定的内容,不换行
System.out.print("hello world");
输出一个空行
System.out.println();
练习
太棒了!
马上就端午了!
回家!
转义字符
转义字符 | 描述 | 举例 |
---|---|---|
\" | " | System.out.println(“\”"); |
\\ | \ | System.out.println(“\\”); |
\t | 一个Tab键的距离 | System.out.println(“你好\t张三”); |
\n | 换行 | System.out.println(“你好\n张三”); |
练习:打印购物清单
作用:解释代码,是给程序员看的,方便维护
编译器不处理注释,所以不影响程序的执行效率
提倡代码注释多多益善
分类:
1、单行注释。//
2、多行注释。/* */
3、文档注释。/** */
我有10块钱,吃早饭花6元,还剩多钱?
1、开空间,存储数据
2、CPU运算,更新空间的值
变量:内存中的一块空间
这块空间中存储的值是可以发生的变化的
变量值:空间存储的数据;
变量类型:存储数据的类型,来决定分配多大的空间
变量名:存储空间的别名,快速地找到取出其中的数据
基本数据类型:
数值:整数
int 4个字节 32位 [-231-231-1]===[-2,147,483,648,2,147,483,647]
byte 1个字节
short 2个字节
long 8个字节
小数/浮点数
float 4个字节
double 8个字节
字符型
char 存储单个字符 使用单引号引起来 如 ‘男’ ‘1’ 2个字节
‘0’----48 ‘A’----65 ‘a’-----97
布尔型
boolean 真true 假 false
引用数据类型:
字符串
String 存储0-N个字符 使用双引号引起来 如“helloworld”
怎么确定数据类型:
手机号码?字符串;
身份证号号码?字符串;
订单号?字符串
银行存款¥1,234,456元?double
不需要计算,可以存储为字符串。
命名规范:
1)只能使用$,字母,数字,_,不能以数字开头
2)不能使用关键字。public class static void String
3) 要见名知意 age name score
4)使用驼峰法(Camel命名法),第一个单词首字母小写,其后每个单词首字母大写:stuJavaScore
5)区分大小写 age Age是两个不同的变量
1、申请空间(声明):数据类型 变量名;
int money;
double score;
2、存储数据(赋值)
money = 10;
可以合成一步:数据类型 变量名=值;
String name=“王明”;
boolean flag=true;
3、使用变量
System.out.println(name);
注意:变量必须先声明,后赋值,再使用。
练习:
输出MP3的数据:
品牌:漫步者
价格:299.9
颜色:白
库存:100
是否首发:false
输出某个学生的信息
姓名:王丽
性别:女
身高:165.8
年龄:18
常住地是否是西安?true
常量:内存中的一块空间,空间中存储的数据不能改变
语法:final 数据类型 变量名=值;
命名规则:全部用大写,单词之间用_做分隔,如USER_ROLE_VIP
字面常量:1,234,‘a’,“abc”,false
默认的数据类型:整数默认的数据类型是int,如果给long类型赋值,需要添加l/L,建议大写L;
小数默认的数据类型是double,如果给float类型赋值,需要添加f/F;
使用场景:1、固定不变的量建议使用常量,PI,WEEK_DAY
2、特殊的含义,STATE_ON,STATE_OFF
语法:变量名=表达式;
运算规则:从右往左
int a=12;
int b=a;
int c=a+1;
从键盘输入数据
//导包
import java.util.Scanner;
//初始化scanner
Scanner scanner=new Scanner(System.in);
//接收一个整数
int a=scanner.nextInt();
//接收一个double类型的数据
scanner.nextDouble();
//接收一个字符串
String str=scanner.next();
+ - * / %
//整除,整数/整数,结果一定是整数
int a=3/2 //结果是1
//求余 %
int b=13%2;
拆分一个三位数
int num2=986; // 98 6/// 9 86
int bai2=num2/100;
int ge2=num2%10;
//int shi2=num2/10%10;
int shi2=num2%100/10;
System.out.println(num2+"的百位数字是:"+bai2);
System.out.println(num2+"的十位数字是:"+shi2);
System.out.println(num2+"的个位数字是:"+ge2);
单目运算符:自增自减运算符++,–
++
int a=1;
a++; //a=a+1
++在后,先用再+
++在前,先+再用
int a=1;
//a=a+2;
a+=2;
System.out.println(a);
System.out.println("-------");
int b=12;
//b++;
//++b; //b=b+1;
//b--;
--b;
System.out.println(b);
System.out.println("-------");
int c=5;
// ++在后,先用再+
//--在后,先用再-
//System.out.println(c++);
int d=c++;
System.out.println(c);
System.out.println(d);
System.out.println("-------");
//++在前,先+再用
//--在前,先-再用
int x=15;
//System.out.println(++x);
int y=++x;
System.out.println(x);
System.out.println(y);
> < >= <= == !=
关系表达式的结果是boolean
== 等于