大数据预科班第一、二天
常见计算机命令
- .表示当前目录
- /表示根目录(windows盘符,linux则没有根目录)
- 查看当前目录下的所有文件和子目录dir
- 树状显示tree(ctrl+c暂停)
- 创建目录mkdir a 或md a
- 访问cd
- 访问上一级cd..
- 回到根目录下cd/
- 删除目录rmdir a或 rd a (注:当该目录下有子文件不能删除)
注:删除后在回收站里找不到删除的文件!
注:当该目录下有文件时不能被删除!
java
- 1995年正式推出,web首选语言
- 简单易学(容易上手),安全可靠(垃圾回收机制+try-catch机制),平台无关,跨平台(java虚拟机 JVM:java virtual mechine;java是跨平台的,JVM不是跨平台的)
- java1.2:applet小应用程序,swing技术-----统称为GUI,图形用户界面
- java5.0->java6->java7.0->java8.0--Lambda表达式
- java之父:James.Gosling
- java技术结构(j2se:标准版 j2ee:java企业版 j2me:移动版)
JDK\JRE\JVM
- JVM:Java Virtual Methine:java虚拟机,java跨平台的前提
- JRE:Java Runtime Environment Java运行时环境,包含核心类库和JVM。
- JDK:Java Development Kit Java开发工具包。包含开发工具和JRE
- JVM<JRE<JDK
安装软件注意事项
java程序
- {}代表程序的界限
- javac编译:将java语言编译为机器能看懂的语言,生成一个class文件
- java解释:jvm执行中间字节码文件
- javadoc提取公共类中的文档注释形成文档
- 文件后缀为java
- 编译完成之后是字节码文件.class文件,运行的也是.class文件
- 没有主函数可以编译但不能运行,因为没有程序的入口
- 文件名和public修饰的类名一致;一个java文件中只能有一个公共类,其他类可以有多个;
- 一个java文件尽量写一个类;可以用包package来分组;包相当于一个容器,存放java文件;
- 有包之后,cmd下包名.类来执行;快速建包(针对com.peng.m)javac -d 文件位置 helo.java 注:带包编译javac -d . test.java
环境变量
- JAVA_HOME:jdk的安装目录
- Path:%JAVA_HOME%\bin
- ClassPath环境:优先去指定目录中找文件
关键字
- 概念:在java中赋予了特殊含义的单词,java中一共有53个关键字,51个再用,2个目前没有使用(const,goto)称为保留字
- 所有的关键字都是小写的,小写的不一定是关键字
用于定义数据类型的关键字 |
---|
class | interface | Byte | short | int | long |
float | double | char | boolean | void | enum |
true | false | Null |
用于定义流程控制的关键字 |
---|
if | else | switch | case | default | while |
do | for | break | continue | return |
用于定义访问权限的关键字 |
---|
private | protected | public |
用于定义类、函数、变量修饰符的关键字 |
---|
abstract | final | static | sychronized |
用于修饰类与类之间关系的关键字 |
---|
extends | implements |
用于定义建立实例、判断实例的关键字 |
---|
new | this | super | instanceof |
用于异常处理的关键字 |
---|
try | catch | finally | throw | throws |
其他修饰符关键字 |
---|
native | scriptfp | transient | volatile | assert |
标识符
1. 可由字母,数字,下划线,$符号组成(注:$符号一般开发中不用)
2. 可以是其中纯粹的一种,但是数字不能开头,也不能全是数字
3. java支持中文命名,但是不推荐
4. 不能使用关键字
5. java是大小写敏感的语言,两名称只要有一点不同就不一样(注:windows系统命名大小写不敏感)
6. 为了提高程序的可阅读性,尽量做到见名知义
7. 驼峰命名法:
类名/接口名:当由多个单词组成时,每个单词首字母大写,其余字母小写
变量名/方法名:第一个单词首字母小写,其余单词首字母大写
包名:全部小写,用. 分开
常量:所有字母大写,单词之间用_隔开
8.main是标识符!
注释
1. 单行注释 //注释文字
2. 多行注释 /*注释文字*/
3. 文档注释 /**注释文字*/
排错:把可能出错的的代码注释起来,实验,然后确定错误后进行修改,修改完将注释去掉进行测试
注:文档注释可以通过javadoc命令来提取,并且一定是公共类,其他类不能提取
常量
1. 整数常量:0,1,2
2. 小数常量:0.1,0.32
3. 字符常量:'a'
4. 字符串常量:将一个或者多个字符用“”标识起来的量
5. 布尔常量:true,false(用于表示逻辑值)
6. 空常量:null
7. 2,2.0,‘2’,“2”
2整数;2.0小数;‘2’字符,“2”字符串
注:''字符不合法,“”字符串合法
注:%%表示引用--配置环境的时候
进制
- 二进制:(0~1),满2进1
- 二进制数字:JDK之前不允许写二进制数,1.7及其以后是以0b开头做为标识
- 八进制:0~7,满8进1;要求以0开头作为标识
- 十进制:0~9,满10进1
- 十六进制:0~9ABCDEF(或abcdef), 满16进1;要求用0x开头作为标识
0000 1111是八进制
进制之间的相互转换
eg:6=110
13=1101
- 二进制转换为十进制:将二进制低位的2的n(从0开始)次幂并进行加和
eg:100110=2+4+32=38
- 十进制向n进制转换:取余倒排
- 二进制向八进制转(3变1):从低位每三位为一组(不足补0),转化为10进制,产生的数按顺序排列
eg:001 001 110=0 1 1 6 (注意补0--因为是八进制)
注:
二进制转换为八进制完后添加0 - 八进制转二进制(1变3)
eg:235=010 011 101
- 二进制转十六进制(4变1)
- 十六进制转二进制(1变4)
注:
1.二、十六进制转换完后注意:10(A或a)11(B或b)12(C或c)13(D或d)14(E或e)15(F或f)
2.注意二进制转换为十六进制完后添加0X或0x
变量
类型 变量名=变量值;
超出使用范围将不能再用
扩展
- 8bit=1byte;1kb=1024b;MB;GB;TB
数据类型:基本数据类型、引用数据类型
基本数据类型、
- 整型
- byte:字节型,一个字节(-27~27-1)(-128~127)
- short:短整型(-215~215-1)(-32768~32767)
- int:整型(-231~231-1)
注:整数默认为int类型 - long:长整型 8个字节(后缀加L)
- 浮点型
- float:单精度 4字节 后缀f
- double:双精度 8字节 后缀d
注:小数默认为double类型
double d=3e4; double d1=0x3p3;//十六进制
从jdk1.7开始,运行数字中间插入_分隔数字,在编译的时候自动将_去掉
java中数值型变量都是有符号的
- 整型默认值0;long默认值0L;float默认值0.0F;double默认0.0;char默认\u0000(\u 表示ut-8编码 0000表示空白字符'')
char a='\u0000';
char b=' ';
System.out.println("eeee"+a+"aaa"+b+"wwwwww");
执行结果:
eeee aaa wwwwww
- 编码:ascii(0-127),西欧码表(ios-8859-1,0~255),gb2312(默认兼容西欧编码(1个字节);2个字节表示一个字符),big5繁体汉字 gbk现在用的最多 unicode编码体系(utf-8常见语言的常见字符;三个字节表示一个 字符;“万国码”;java默认编码为utf-8;注utf-8兼容西欧码表,但不兼容gbk,中文为三个字节) - 转义字符:代替特殊字符(\t制表符 \r回车 \n换行 \反斜杠 \'单引号 \"双引号) - 布尔型------boolean------大小根据操作系统和jdk版本把不同而定-----true/false 默认值false
引用数据类型
数据类型的转换
- 转换规律1:byte(1)->short(2)->int(4)->long(8) 在int的取值范围内赋值给long可以不加L(eclipse中编译注意)
- 转换规律2:float->double
- 转换规律3:int->flat,可能会精度损失,注意float写小数时家L(l与1可能会混乱)
- 转换规律4:任何一个整形都可以赋值给浮点型类型,可能精度损失
- 转换规律5:char->int
cahr c=98;//编译时已经成了char c='b';
short s='b';//编译时已经转换为short s=98;
//分开编译时,在内存中已经形成了对应的数据,jvm不确定类型,不允许赋值(简单理解是不一定码表对应)
char c1='c';
short s1=c1;//出错
总结:因为两句话是分开编译的,所以范围不确定。
- 精度损失:double用11位存整数,而int位32位
- 显示转换(强制类型转换):当把大类型转换为小类型时,需要强制转换
- 各个类型之间是平等的,不存在大小或者说是父子关系
注:1.小数转成小数时,不是四舍五入,而是舍弃掉小数部分,因此转换时精度可能损失
2.计算中,绝大部分小数没办法精确表示
运算符
+加 -减 *乘 /除 %取模 ++自增 --自减 +字符串拼接
注:java是一种强类型的语言,对每种数据都严格划分了数据类型
1.两个整型数做运算结果一定是整型
2.一定注意分开写和不分开写
3.byte和short在进行运算时,底层会提升为int进行计算,用时记得强制装换
4.byte b=2+3; 在内存中已经处理成byte b=5;
5.负数取余:a%b 取余符号看%左边的符号,算数值正常算(左负为负)
6.小数取余:取小数就ok
7.++自增,相当于在原来的基础上加1;只有自增运算的时候++在前或在后结算结果一样
++在前,这个变量先是自增,然后参与其他运算
++在后,先参与其他运算,然后这个变量再进行加1
8.javap命令查看过程
9.byte b=1; b++:底层计算时会有int转换,输出结果时再强制转换为byte
10.字符串拼接运算:2+3+"a"为5a 2+'a'为99
= += -= /= *= %= &= |= ^=
注:
1.byte中 i+=1;原理与i++一样
2.除了=以外的赋值运算符,必须有初始化的值。
== != > < >= <= instanceof
注:
1.instanceof判断对象与类的关系
2.=是赋值运算符,==是等于
& And 与 | Or 或 !Not 非 ^异或 &&短路与 ||短路或
注:
1.&真真为真,其他为假
2.|有真为真,假假为假
3.!非真即假
4.^真假为真,相同为假
5.&&左边为假则不算右边,为假;左边为真才计算右边,且与&计算相同
6.||左边为true,则不算右边,为真;左边为假才计算右边,且与|计算相同
public class Demo01 {
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
if (3 > 4 && a++ > 1 || ++b == c) {
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
}
结果为:
1
3
3
&与 |或 ^异或 <<左移 >>右移 >>>无符号右移 ~取反
注:位运算是先将数据转换为二进制,将低位(右边)对齐,高位不足补0;
0看为false,1看为true,然后进行运算,最后将结果转化为十进制数
1.奇数^偶数=奇数
2.^交换值(交换值方式:设置第三方变量;加减法;^)
3.<<:将数据转换为二进制之后,按照指定的位数进行左移,移除的部分舍弃,
低位空出补0,然后将结果转换为十进制数。
>>:将数据转换为二进制之后,按照指定的位数进行左移,移除的部分舍弃,
高位空出的【整数补0】【负数补1】,然后将结果转换为十进制数。
整数右移:越移越小到0
整数左移:越移越大到-1 11111111
右移:除2的n次商取整
4.>>>和右移相似,但是最高位空出后一律补0
5.~ 01互转,最高位按照-128,其余二进制按照十进制规则转换,然后+128
规律:和为-1
int i=1,j=2,k;
//第三方变量(最常用)
k=i;
i=j;
j=k;
//加减
i=i+j;
j=i-j;
i=i-j;
//异或(效率最高,局限性低,只能为整型)
i=i^j;
j=i^j;
i=i^j;
格式:表达式 ? 值1:值2