毕向东 Java基础视频教程01天 01 基本常识
1. 软件:一系列按照特定顺序组织的计算机数据和指令的集合。
2. 常见软件分类:a.系统软件 b.应用软件
3. 软件作用:实现人和计算机之间更好的交互
4. 人机交互方式:a.图形用户界面 b.命令行
5. 常见DOS指令:cd,dir,md,rd,cd..,cd\,del,echo,exit. del *.txt
6. 计算机语言:人与计算机交流的语言
7. Internet 是最大的互联网,前身是ARPA, 万维网是Internet的一个主要应用还有如电子邮件,文件传输(ftp),telnet远程访问等应用,万维网是网络站点和网页的集合。互联网》因特网》万维网
毕向东 Java基础视频教程01天 02 跨平台性
1. 来源:SUN公司1995年推出的高级编程语言
2. Web应用程序开发的首选语言
3. 特点:完全面向对象,跨(操作系统)平台
4. Java语言的三种技术架构
a. J2EE Java 2 Platform enterprise edtion 主要针对web应用程序开发
b. J2SE 开发普通的周面和商务应用程序 是另外两个技术体系的基础
c. J2ME 开发电子消费产品和嵌入式设备
JAVA5.0 以后更名为 JAVAEE JAVASE JAVAME
5. JAVA跨平台:用JAVA语言编写的应用程序可以在不同的系统平台上运行。而用C++编写的程序只能在windows系统上运行。
原理:在需要运行java程序的操作系统上安装java虚拟机,用来解析和运行java软件。不过虚拟机JVM是依赖于平台,分版本的。
毕向东 Java基础视频教程01天 03 环境搭建(安装)
1. JRE:Java Runtime Environment,包括JVM和java程序的核心类库
2. JDK:java development kit 包括和JAVA开发时所用到的工具和JRE
3. JDK>JRE>虚拟机
毕向东 Java基础视频教程01天 04 环境搭建(环境变量配置)
1. 为了更方便应用java开发工具,进行环境变量配置,将其路径复制到环境变量path的变量值中,让操作系统帮助我们更快找到该应用程序。
毕向东 Java基础视频教程01天 05 环境搭建(环境变量配置技巧)
动态变量赋值法(动态获取原有变量值)%X%,对路径中可能会更改的部分设置动态变量,以防止影响系统本身设置好的路径值,从而导致其他一些程序不能正常运行。
毕向东 Java基础视频教程01天 06 环境搭建(环境变量临时配置方法)
临时修改环境变量的值
set命令查看和修改环境变量值,不过DOS命令行下用set进行的环境变量配置只在当前窗口下有效。
修改环境变量值时可以通过动态获取原有变量值的方法对动态变量进行增加修改。如path=haha;%path%
毕向东 Java基础视频教程01天 07 hello world
1. java语言的文字编辑器,低级:记事本,高级:eclipse(自动生成)
2. 编写包括:定义类+public static void main函数, String和System.out.println的s要大写。
3. java源文件编写好之后,要对它进行编译和运行,编译用javac指令,编译之后生成java的运行文件class文件,也叫中间码文件或自解码文件,运行用java指令,一旦启用java命令,就会自动寻找jre中的虚拟机去执行该运行文件而得出最终结果。源文件名和类名一致方便匹配文件。
毕向东 Java基础视频教程01天 08 classpath配置
1. 环境变量的配置分为一劳永逸和暂时配置,在我的电脑高级中进行前者,用set命令进行后者
2. 对环境变量进行清空 set classpath=
3. 若已设置了环境变量classpath, 虚拟机会先找classpath,如果在classpath里没有找到的话,就取决于set classpath=最后有没有分号,若有则继续在当前目录找,若没有则找不到,一般为了防止运行我们不想要运行的程序是不加分号的。而已经设置了path,是当前目录优先。
4. 在设置环境变量时,如果是可执行文件,设置path,如果是java执行文件即类文件,则设置classpath.
5. Classpath配置多路径 set classpath=c:\;d:\ 中间用分号,
6. 由于classpath后不跟分号时,不继续在当前目录找,若已经设置了classpath后还需要在当前目录找,可以set classpath=.;c:\;d:\ 其中.代表当前目录
7. 若想在dos命令行输入QQ.exe就弹出QQ,则对QQ.exe进行环境变量配置,set path=….
即可。
毕向东 Java基础视频教程01天 09 Helloworld的组成部分
1.类名通常由单词所组成,单词首字母大写。{}区间里都是类的内容
2. java指令会调用虚拟机,虚拟机会调用windows底层内容并调用你指定的内中的主函数,主函数保证类的独立运行。程序都是从main函数开始运行的。类中不一定要主函数,需要类独立运行就在其中放入主函数,不需要就不放。
毕向东 Java基础视频教程01天 10 注释
单行注释// 多行注释/**/ 文档说明书/** */
注释作用:注解说明程序+调试代码
多行注释中不能有多行
边写代码边加注释
编程序时,先写文档注释,需求和思路和步骤
毕向东 Java基础视频教程02天 01 标识符
1. 标识符:程序中自定义的名称,如类名。
2. 标识符规则:有26个字母和0到9的数字,$_组成,不能以数字开头,不能为关键字
3. 大小写敏感
毕向东 Java基础视频教程02天 02 常量
1.常量:整数,小数,布尔(true false),字符,字符串,null(null)
2.加上单引号的数字,字母和符号是字符常量,且单引号内只能存放单个字符
双引号的是字符串
4. 对于整数java有三种表现形式:十进制,八进制以0开头,十六进制以0x开头
毕向东 Java基础视频教程02天 03 进制的特点
编码表之ASCII
一个字节等于八个二进制数。
之所以会出现八进制和十六进制是为了更方便的表示数据,八进制是把三位二进制用一位来表示,十六进制是把四位二进制用一位来表示
进制越大表现形式越短
一个整数有四中体现形式,即四种进制
计算机内存里的数据全是二进制的
毕向东 Java基础视频教程02天 04 进制的转换
十进制转二进制,转到我们不熟悉的进制时,用除法一步步取余数倒排,一直除到商为零,然后把余数倒取。二进制转十进制,转到我们熟悉的进制就简便了,直接个位乘以二的n次幂求和。
一个字节最大值是255
Ip地址的每一段都是用字节来表示的,所以每一段最大值是255
计算机内计算2+5,是先把2和5都转化成二进制数,对二进制数进行加减乘除,最后把二进制的结果以十进制输出。
毕向东 Java基础视频教程02天 05 进制的转换 八进制和十六进制
1. 十进制转换成八进制和十六进制,若直接除以八和十六,有时候算起来比较麻烦,可以先把十进制转换成二进制,对二进制数以三位或四位为单位进行划分,然后转换成八和十六进制。
2. 为什么没有32进制,32进制是吧二进制的五位用一位32进制来表示,五位的最大值是31,可是用32进制表时候,涉及到的用于表示32进制的字母有22个太多,用起来不方便。
毕向东 Java基础视频教程02天 06 进制的转换 负数二进制
1.6的补码在内存里占了四个字节00000000 00000000 00000000 00000110,-6是对6的二进制取反+1
11111111 11111111 11111111 11111001
+1
= 11111111 11111111 11111111 11111010
毕向东 Java基础视频教程02天 07 变量
1.运算是在内存中进行的,内存就是一个运算区域,内存越大里面装的运算的数据越多,并且cpu的处理性能高,计算机运行就越快。如果只是CPU处理性能高,但是内存小,里面装的数据少,cpu能处理的数据少,计算机也不能运行快。所以要cpu够快,内存够大。
2.不同的数据类型,分配不同的内存空间
3.一个整数之所以划分成四种数据类型,byte,short.int.long,是因为它在内存中占的空间大小不一样
4.byte是由八个二进制位表示一个字节的数据,取值范围-128(2的7次方)到127
5.short是由16个二进制位表示两个字节的数据,取值范围-32768(2的15次方)到32767,即这个空间里就能装30000多。
6.int 32个 生活中的数据基本都在,一般写整数,默认就是int
7.long 天文数字
8.cpu中的内存称为缓存,用于缓冲数据,缓存越大数据越多,处理就越多,所以买cpu和硬盘时要看缓存大小,
9.浮点类型数据,即小数,分为float,double, float占4个8位,即32个二进制位,double占8个8位,即64个二进制位。
19.char类型占用2字节的内存,取值范围位所有的Unicode字符。
20.问题:定义long型时,数值后加l作为标识,long x=4l
21. float f=3.5f 因为小数默认为double,所以在后面加上f就变成float类型,可以装在float中。(整数的默认类型是int)byte b=3 short s=30000
22.boolean bo=true/false.
23.原码和补码:如+11用8位二进制数表示原码为:00001011。-11原码为10001011,最高位表示符号,0为正数,1为负数,原码是有符号数的最简单编码方式,但是不能直接参与计算。
在计算机系统中,数值一律用补码来存储的,使用补码,就可以把符号位和数值为统一处理,并且减法可以做加法处理,注意,用补码表示的数相加时,最高位(符号位)有进位,则进位被舍弃。正数的补码就是原码,补码表示方式很多可以用八位,十六位,三是二位的二进制来表示,如+9的补码是000001001就是采用八位二进制表示。负数的补码是负数的原码除最高位外都取反然后+1,结果和正数的补码各位取反+1一样,所以负数的补码要嘛通过负数的原码要么通过正数的补码求得。已知负数的补码求原码,就把负数的补码当做原码求补码得到的就是负数的原码。在计算机内,如果是一个二进制数,其最左边的位是1,则我们可以判定它为负数的补码。补码的绝对值即真值,因为负数的补码不能直接看出数值的大小,所以可以求补码的绝对值,各位取反加一,也就是正数的原码或补码。
毕向东 Java基础视频教程02天 08 类型转换
1. 自动类型提升:byte b=3;
b=b+2; 因为整数默认为是int型占四个字节内存,而byte占一个字节,所以自动把b+2中的b的值提升为四个字节后和2相加,结果为四个字节的值,再把它赋给左边的b时出现问题。
2. 强制类型转换:b=byte(b+2) 或用于对小数去整数部分时用int
Int+float=float
3. System.out.println(‘a’);输出地是字符a
System.out.println(‘a’+’b’);输出地是195 注意这里a和b都用单引号,是字符,不能a+b,两个字母没法加
4. 强制类型转换时后面是两个数据之和则byte(a+b),若只有一个数据则(char)9,括号的位置不一样
毕向东 Java基础视频教程02天 09 算术运算符
1. /整除符号:相处取整
2. %模:相除取余 如1%5=1,左边小于右边就是左边
3. 取模运算出中出现负数,只看负号是否在左边的被模数前,若是则结果为负数,若不是则结果为整数,如:1%-5=1,-1%5=-1
4. a++等价于a=a+1,也就是a的值自增1
但是b=a++,先把a的值赋给b,然后a再自增1.
但是b=++a,先把a自增1,然后再赋值给b.
但不管怎么样a的值都会自增1.
5. 连接两个字符串“”+“”,并且字符串和其他数据类型相连时必须用+相连,最终+不会显示在结果中如"a="3不合规则,必须"a="+3,显示为a=3,此时这里的3是数字,当然也可以用字符‘3’
6. int a=3,b;
b=++a;
System.out.println("a="+a+','+"b="+b);
System.out.println("a="+a+",b="+b);
都显示为a=4,b=4,第二种简单,其中黄色部分逗号左右一定要左右各有加号,因为前面构成a=4后又构成字符串,连接时只能连接一个(某种类型的)数据,所以逗号没被连接上,而字符串和数据相连必须要+,加完之后又变成字符串用加号和后面的字符串相连
毕向东 Java基础视频教程02天 10 转义字符
1. 反斜线\转义后面字母或者符号的意义,
\n:换行
\r:按下回车键 windows中换行两者都可,linux换行只有\n
\b:退格,相当于backspace
\t:制表符,想到与Tab
注:转以后\n还是单字符
2.想最终显示“hello java”,则
System.out.println("\"hello java\"");(ln用于双引号之后转行),通过反斜线将表示字符串的"转义成双引号。
2. 想最终显示\hello world\
System.out.println("\\hello world\\");
3. char c='中'是可以的,char占有两个字节,汉字也占有两个字节。
毕向东 Java基础视频教程02天 11 赋值和比较运算符
1. S+=5基本等价于s=s+5,有时有区别,如下
2. short s=4;
s=s+5;
s+=5;的区别,上面的运行不同,下面的可以运行,因为上面右边先自动类型提升为int型然后赋给左边,但是装不下,会丢失精度。
下面的直接把s+5赋给左边,进行自动类型转换
3.==是比较运算符,如4==3,它运行的结果要么是true要么是false
毕向东 Java基础视频教程02天 12 逻辑运算符
1. 逻辑运算符(&,|,^)用于连接布尔型的表达式,即连接判断trueorfalse的表达式
如int x=7;
x>3&x<9 true 注:计算机语言中不能写3<x<9,必须分两个写
2.^异或:两边相同为假,两边不同为真
true^true=false
true^false=true
false^false=false
3.&和&&的区别,无论左边是真是假右边都要判断,&&当左边位false时,右边不判断,左边为真时,右边继续判断。
|和||同上,||当左边为真时,不再判断右边。
毕向东 Java基础视频教程02天 13 位运算符 左移右移
位运算符都是针对二进制数的
1. 左移就是乘以2的移动的位数次幂(左乘右除)
右移就是整除2的移动的位数次幂
3<<4=3*2(4)=48 3<<1=3*2(1)=6
6>>1=6/2(1)=3 6>>2=6/2(2)=1
2. 当用>>右移时,空缺的最高位补什么由原有二进制数据的最高位决定,最高位是0,用0补,最高位是1,用1补
3. 当用>>>右移时,无论最高位是0还是1,都用0补
毕向东 Java基础视频教程02天 14 位运算符(& | ^)
位运算符都是针对二进制数的
1. (0为假,1为真)
2. ~6+1=-6
3.111=7 110=6 1111=15
4.一个数异或一个书两次,结果还是那个数本身。异或位运算符可用于加密和解密
毕向东 Java基础视频教程02天 15 位运算符(练习)
1.2*8 体现位运算的高效用2<<3
2.对两个整数变量的值进行互换,不借用第三方面变量
int n=3,m=8;
n=n+m;//如果n和m的取值非常大,有可能超出int范围(最大值2(31)-1),丢失精度
m=n-m;
n=n-m;
或者n=n^m;
m=n^m;
n=n^m; (n^m=m^n)
毕向东 Java基础视频教程02天 16 位运算符(练习2&三元运算符)
1. 将任意进制转化成非十进制:二进制转化成8进制和16进制,分别三位和四位的取,又因为任何一个数在计算机中都是以二进制的形式存在,所以对任意进制的数都可以通过先与再右移的方式进行非十进制的转换。
2. 通过&的方法获取一个数的八进制&7,十六进制&15,二进制&1
以十六进制为例:先对数n&15,取最低四位的十六进制数,
然后temp=n>>>4;
然后temp&15得到上四位的十六进制数
以此类推,注:因为当n是负数时,>>时最高位补一,不断增加有效位,永远移不光,所以用>>>右移,不管最高位是1或0都补0,一直把原有数据移到0。
3. 已知n>9,把n转化成16进制下的大写字母,n-10得到超出数字基数10多少,然后(n-10)加上字母基数‘A’,(n-10)+’A’,因为计算时都是十进制数字,再转化成char,(char)(n-10+’A’)
4. 三元运算符 (条件表达式)?表达式1:表达式2;
毕向东 Java基础视频教程02天 17 18 语句(if判断结构)
1. 三元运算符:好处:可以简化If else代码。三元运算符因为是运算符,必须有一个运算结果,if else不一定有结果。
2. If(x==3 || x==4 || x==5)
System.out.println(“春季”); 此处用||可以提高效率,只要前面的判断为true,就不再判断后面的。
毕向东 Java基础视频教程02天 19 语句(switch选择结构)
1. switch(x) 被判断的x通常有四个类型:byte short int char,char可用于计算器
2. Case 和default的顺序是可以任意排列的,但是计算机执行的顺序实现从具体值开始执行,最后到default
3. Switch的结束分两种,执行到break结束switch,执行到}结束
4. 执行完default后若没有跳出switch,也就是说既没有遇到default里的break(一般是不加break),也没有马上遇到},那么计算机对下面的语句不进行case判断直接执行,直到遇到break或者}退出。
毕向东 Java基础视频教程02天 20 语句(switch练习)
1. 对具体数值进行判断,数值不多,并且符合byte,short,int,char类型,用switch完成,(JDK7.0中switch可以对字符串进行判断)其他情况,用if效率高。
---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net/heima" target="blank">http://edu.csdn.net/heima</a>