1808笔记

=============================================================================
8.27-8.30
Eclipse
1、创建项目(右键-new–JavaProject–project namexxx–finish–sic–右键new–package–namexxx–finish–包–new–class–namexxx–string【】打钩–finish);

2、开发步骤:
1)创建Java项目–2)创建java包–3)创建java类

3、注释:
解释性文本 //单行解释 /……../多行解释 /…………./文本解释*

4、print输出不换行 println输出换行

5、接收随机数:
1)import java.util.Scanner; //必须放package下
2)Scanner scan = new Scanner; //必须放main后面
3)System.out.println(“请输入:”); //比较人性化,放在2)后面
4)int age = scan.nextInt(); //放在3)后面, 后面打完scan后点n就自动出来了

6、数类型:
1)int:整形,只能装整数,-21e–21e
2)long:长整型,只能装整数,范围很大
3)double:浮点型,只能装小数,范围很大
4)boolean:布尔类型,只能装true和false
5)char:字符型,必须放在单引号里面,只能有一个字符(不能空字符)
6)String:字符串型,必须放双引号中,0到多个,可以空字符

7、运算符(short、byte,char在运算之后结果类型还是本身
1)++/–:自增自减,++/–可在变量前也可在后
2)单独使用(即只有++1或1++)++–在前在后没区别,结果均自增或自减1
3)被使用时,在前在后有区别:a++的值为a,++a的值为a+1
int a = 5;
++a;//相当于a=a+1

int a = 5:
a++;//相当于a=a+1

int a = 5;
int b = ++a;
sop(a);//被使用,a为6
sop(b);//被使用,b为6

int a = 5;
int b = a++;
sop(a);//被使用,a为6
sop(b);//被使用,b为5

不论b怎样,a是一定会变的,a自增1或自减1。

8、逻辑运算符:(逻辑运算符是建立在关系运算符基础之上,逻辑运算结果为布尔类型)
1)&&:逻辑与(并且),两边都真则真,见false则false。
||:逻辑或(或者),有一边为真则真,见true则true。
!:逻辑非(取反),非真即假,非假即真。
9、关系运算符:> < >= <= != ==

10、if语句:
1)if… 如果…,就不干….
语法:if(boolean){语句块}
执行过程:判断boolean若为true则执行语句块,若false则不执行语句块。

2)if…else… 如果…,就干另一件….,先把括号全写上
语法:if(boolean){语句块1}
else{语句块2}
执行过程:判断boolean值,若为true则执行语句块1若为false则执行语句块2。

3)if…else if… 先把括号全写上
语法:if(boolran-1){语句块1}
else if(boolean-2){语句块2}
else if(boolean-3){语句块3}
else {语句块4}
执行过程:若boolean-1为真,则执行语句块1(结束)
否则若2为真,则语句2
否则若3为真,则语句3
否则执行语句4

4)说明:
1、块1234只有可能走其中之一,不能同时都走。
2、若无最后的else,则123有可能都不执行。
3、若有最后else,则1234执行其中一个。

=============================================================================
8.31
1、java由sun公司发明的高级编程语言,简单易学,安全可靠,面向对象,跨平台。

2、java三大技术架构(J2se(基础版/标准版)、J2ee(企业版/商务版)、J2me(小型版))。

3、jdk1.5是java里程碑版本

4、java语言环境搭建
JRE java运行环境 (JRE=JVM+核心类库)
JDK java开发工具包 (JDK=JRE+开发工具包)
安装jdk目录不要出现中文或空格

5、打开计算机DOS命令
1.win+r
2.在地址栏输入cmd(常用,好用)

6、一些简单DOS操作符
1.dir 查看当前目录下所有文件
2.cd 进入指定目录
3.cd.. 返回上一级
4.cd\ 返回当前盘符根目录

7、为使Java编译和运行可以随时进行,需要编辑系统的环境变量
右键计算机属性–高级系统设置–高级–环境变量–上栏用户变量–新建JAVA-HOME(变量名)C:\Program Files\Java\jdk1.8.0_45(变量值,这是jdk的安装目录)。新建path(变量名)%JAVA_HOME%\bin(变量值,这是jdk的bin目录,%xxxx%意指动态获取)。–确定–确定。

8、java案例
1)打开EverEdit(写java的比较原始的编辑软件)–工具–设置–设置字体–20–点右下角一下–转换编码–选936并确定–在一个拥有管理员权限的盘里新建文件夹新建txt文件并将后缀改为.java–拖动此文件至EverEdit窗体–编码
2)编码–声明一个类–class JavaDemo{} xxxx.class(.class前面名称一定是类名)
3)类中定义main方法
class JavaDemo{
public static void main (String[] args){}
}
main特点
1.可以让类单独运行
2.是程序入口
3.被jvm调用

9、.java文件中存的是人可看懂的代码(源码),通过javac把.java文件编译成.class(字节码文件)
编译过程: javac Demo.java(编译时带.java)
运行过程: java JavaDemo(运行时不带后缀)

10、注意:
1.class前面若有public就变味公共类,公共类的名字要和.java文件的名字完全相同
2.在同一.java文件中只能有一个公共类,可以有多个普通类(无修饰的.class),在同一个包中无论公共类普通类,两两不可以相同。
3.java语言区分大小写,windows不区分大小写。(若忽视此问题,可能会导致最后只
出现一个.class文件,但生效的一定是最后一个类的.class文件,即一个java文件编译的
时候出现两个普通class,class Demo1和class DEmo1,但是只有class DEmo1生效
)若仍想这样命名就只能用带包编译

11、带包编译:
javac -d . DEmo1.java(javac空格杠d空格点空格DEmo1.java) -d 意指创建目录
. 意指代表.class要存放的位
置-当前目录

12、带包运行:
java cn.tedu.com.DEmo1 *java命令后面跟上包名点出类名经课后验证,需在编译时的dos命令栏中输入地址运行,而不能在新建后的地址栏输cmd进行命令动作)*

13、关键字:(特点是都是小写)
在java中被赋予特殊含义的单词关键字有53个—const和goto是保留字(也是特殊含义的词)

14、标识符:在java中可以自定义的名称
组成部分:
1.字母(各国常见字符)
2.数字(0-9)
3.特别字符(_ $ 不推荐使用)(下划线和doller符号)
命名规则:
1.不能是关键字(Myclass不属于关键字)
2.不能以数字开头

        标识符最好可以见名知意(编程行规,尽量遵守)

        驼峰命名法:
                1.若类名或接口名由多个词组成(XxxYyyZzz)
                2.如果方法名或变量名由多个词组成(xxxYyyZzz)
                3.包名---如果包名是多级,每个名称都是小写(xxx.yyy.zzz)
                4.常量名---若由多个词组成(XXXZ_YYY_ZZZ)

===========================================================================
9.1
复习8.31
JVM(不是跨平台)—JAVA(跨平台) (JVM是实现java语言跨平台的工具)
三大技术架构。J2se,J2ee,J2me
JDK=JRE(=JVM+核心类库)+开发工具包
main特点1让类单独运行 2被JVM调用 3程序入口
java语法基本组成—关键字(53个,都是小写)—标识符(组成(1字母,2数字,3_,$));规则(1不能是关键字2不能以数字开头);驼峰命名法,见名知意

新知识
1、注释
在代码中用于解释说明的文字
1.1/单行注释(//注释内容),单行注释可以嵌套单行注释
1.2/多行注释(/注释内容/)多行注释可嵌套单行注释,不能嵌套多行注释
1.3/文档注释(/*注释内容/)把注释中的内容通过javadoc命令提取到index.html文件中就形成了程序说明书(注释过程:javadoc xxx.java)

以后工作中养成习惯(先分析需求,再分析业务)
比如:
需求: 控制台打印helloworld
需求分析: 1.需要有个类(class)
2.这个类可以单独运行(main三大作用之一)
3.输出结构(pof)
步骤: 1.用class声明类
2.定义main方法
3.输出语句

2、常量(分为两大类,字面值常量和自定义常量
定义: 在程序运行过程中,值恒定不变的量
2.1/字面值常量(分为六类,整数,小数,字符串,字符,null,布尔
(整数常量100,10000)
(小数常量2.6,1.8)
(字符串常量”hello”)
(字符常量‘a’)
(空常量null)
(布尔常量true,false)
2.2/自定义常量(后面讲)

3、整数的四种表现形式
二进制—由0,1组成,在jdk1.7版本以后用0b开头 0b1001
八进制—由0-7组成,以0开头077
十进制—由0-9组成,正常数字就是十进制
十六进制—由0-9,a-f(不分大小写),以0x开头

4、四种进制书写
输出二进制 sop(0b100);
输出八进制 sop(0100);
输出十进制 sop(100);
输出十六进制 sop(0x100);

5、进制:进位的一种方式(逢X进1)

大部分小数转换成二进制数据都是无限位数

5.1其他进制转换为十进制
二进制100十进制4
=1*2^2+0*2^1+0*2^0=4 权:从右往左数,从零开始编号
八进制100十进制64
=1*8^2+0+0 规律:‘每一位的数’ ‘非目标进制’的权次幂 再相加(之和)

5.2十进制转换为其他进制 规律:用十进制的数除以目标进制,直到商为零为止,余数反向排序
(脑补画面)
5.3所有数据都是根据底层计算机硬件状态来表示的
规定由8个状态来表示数据,但是状态很难量化表示,为此硬件状态由0,1来表示(比如10101010)—包含0,1的数据就是二进制数据

5.4拆分组合法
010 101 010 (规律:欲得八进制,则右往左3个一组不够位补零,算出每组十进制)
2 5 2 (八进制数据即为252,最左边的0是补位0,对数据精度无影响,在其他情况中若去掉
0会对精度造成影响,故只能高位补零而不能高位祛零)

1010 1010 (规律:欲得十六进制,则右往左4个一组不够位补零,算出每组的十进制)
a a (十六进制数据为aa)(由此可以看出,进制越大,表现形式越简单)

5.5任意进制之间的转换(两种办法)
1.先把x进制转换为十进制,再由十进制转换为y进制.2.拆分组合法(常用)

6、电脑自带计算器说明: 打开win10自带计算器,打开程序员模式.
BIN二进制输入 HEX十六进制 DEC十进制 OCT八进制

7、变量(在程序运行过程中,值发生改变的量)(变量是存储数据最小的的容器)
java是强类型语言,即每个数据都要有对应数据类型,**只是所有数据都是底层计算机硬件状态来
表示(上文提及)此状态为二进制数据,此处不矛盾,加强理解**)
延伸阅读:1B=8b 故100Mb的上网宽带实际使用下载速度是100/8=12.5MB/s

8、定义变量
1.如果给的是整数值,默认就是int类型
2.长整型数据后面可以加L或l或者不加
3.如果给的是小数值,默认是double类型
4.float类型数据后面必须加F或f(若想声明数据类型是float)
5.double数据后面必须加D或d(D或d可加可不加,因为浮点数默认double类型)

9、java数据类型: 一个字节由8个二进制位构成
基本数据类型(四类八种)
–整数类型(精度逐渐变高) 字节 存储数据范围
byte(字节类型) 1 -2^7—2^7-1
short(短整型) 2 -2^15—2^15-1
int(整型) 4 -2^31–2^31-1
long(长整型) 8 -2^63—2^63-1
—–浮点类型
float(单精度) 4 -e^38—e^38(e科学计数法
double(双精度) 8 -e^308—e^308 e即为10)
—–布尔类型
boolean(布尔) 1 true,false
——字符
char(字符) 2 0-65535(汉字一共6w多个
不同类可同时参与计算,但是不包括布尔类型
编码过程会发生数据类型转换:
转换方向为:byte,short,char – int –long–float–double这就是自动转换的顺序了,(低精转高精)其中byte,short,char在运算时是自动转换为int,而int与long运算时自动转换为long型

10、定义long变量
对于数据比较大的可以用_分割数据
例题:long l=34_012_612_637l;
System.out.println(l);

11、定义char变量
double s1=11; char s1=11;
char c=s1;(char往内接受值) double c=s1;(char往外输出值)
由于char类型的范围均是正值且范围2^16-1较小,所以char接受传值时只能接受自己或比自己
的类型;char往外输出值时只能输出再给自己或比自己的类型。(char特点

12、类型转换:(低精度无损转高精度,但是高精度转低精度可能有损)
1.默认转换、隐式转换(低精升高精)
byte、short、char自动升精度为int
int可以升long;float可以升double
也有例外,比如整数类型升为浮点类型可能会产生舍入误差由于在计算过程中小数可能无 限位,而计算机存储有限,因此需要对小数位进行舍入,引起的误差叫做舍入误差
2.强制类型转换、显式转换(高精降低精,损失精度,不建议)(最大公约子集范围内
byte a=3; 可以相互无损转化此话不
int b=4; 对,需要辩证的理解,参照每两棵树间种草)
byte c=(byte)(a+b);(值为7)(格式:目标类型=(目标类型)要转换的数据/变量)
3.小数转换成整数—会舍弃小数点后面的数据即取整(丢失精度,失真,有损)
double d=3.456;
int x=(int)d;
System.out.println(x);(输出的值为3)
4.出现意想不到的值
byte y=(byte)128;
System.out.println(y);(值为-128)(128超过byte范围,强制转换损失精度)(128是int类型
int是4个字节,一个字节由8个二进制状态表示,00000000 00000000 00000000 10000000是
128的二进制表现形式,高精转低精损失三个字节精度即消除前24个零成为10000000,符号位
是1因此先断定次数是负数,所有数据在底层都是二进制数据补码的形式存储的因此求此负
数的原码即符号位不变减1得出反码111111111,最后取反100000000即负的零,-0即-128

char a1=1+1;
System.out.println(a1);(值无法显示)(char接受传值时只能接受自己或比自己的类型)

float f = 3.4F;(此形式更好,直接注明3.4为float类型)
float f = (float)3.4;(此形式将3.4double类型强制降精度为float类型,可能会有误差)

byte a = 1+1;(后台进行编译优化,将最终int类型降精度为byte类型,赋值过程发生的转化
叫编译优化)

例题:byte a=127;(因为整型127的二进制0111 1111,前面还有3*8=24个二进制位都是0,并且
System.out.println(a); byte是一个字节即8个二进制位,降精度转换时将3组0去掉而不影响精度,
或这样想byte是int的子集,byte范围-128-127,在此范围内可相互无损转换)
例题:byte b=4;(整型4在byte范围之内,先无损转为byte类型,byte的全范围是short的最大公约
short s=b; 子集,因此byte4无损转为short4。此过程系统后台自动运行,运行过程:系统
自动类型检查,将字符自动转存码表对应数值。)

13、编码—把文字转换为数字 通过码表
码表的演化史 :
ASCII(阿斯科码表)0-127—ISO-8859-1(西欧码表)0-255(一个字节)—GB2312(简体中文)、BIG5(繁体中文,为台湾省弄得)0-65535(2个字节)—unicode编码体系(utf-8(3个字节)、utf-16(2个字节)、utf-32、utf-e32)
unicode编码体系是为全世界统一搞得编码体系,相互兼容。
默认所有码表兼容西欧码表
‘a’–GB2312占用一个字节

14、转义字符
‘\t’制表符长度空格 ‘\’就想打个\
‘\r’回车 ‘\’’就想打个’
‘\n’换行 ‘\‘’’就想打个’’

15、原码,反码,补码(原反补)
所有的数值在底层都是二进制数据的补码形式储存,(数据在内存中始终是以二进制形式存放的。数值是以补码表示的。)
1.原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
2.反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其
余各个位取反。
3.补码的表示方法是:正数的补码就是其本身;负数的补码是在其反码的基础上+1。
举例:
十进制数 原码 反码 补码
85 0101 0101 0101 0101 0101 0101
-85 1101 0101 1010 1010 10101011
9 0000 1001 0000 1001 0000 1001
-9 1000 1001 1111 0110 1111 0111

16、引用类型(类、借口、数组)(下节课讲)

===========================================================================
9.3
1、算数运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符
三目(元)运算符

2、算数运算符+,-,*,/,%,++,–
2.1、++– 训练营笔记已有并够用
2.2、+ 的用法(1.就是加号意思,2.字符串连接符)(字符是字符 字符串是字符串)
2.3、+,*,/ 若都是整形类型数据运算,结果一定是整形
若有一个或多个小数参与运算,结果一定是小数
2.4、整数/0=java.lang.ArithmeticException(算术异常的意思)
小数/0=Infinity(无穷大的意思,此结果有正负之分,正负取决于小数正负)
0.0是小数(~..~)
(0.0/0)、(0/0.0)、(0.0/0.0)这三个式子结果均为NaN(not a num 意为不是数)
2.5、%的用法 结果的正负只取决于%左侧的数的正负,左正结果即正,左负结果即负
2.6、//字符会转成对应编码的数值大小(下式a编译优化为码表对应数值97)
System.out.println(10+’a’);

    //在没有字符串先运算的情况下,字符遇到整数结果是int类型,下式得 109b
    System.out.println(‘c’+10+“b”);(左往右算先得109,遇字符串,+拼接作用)

    byte by=127;
    short s=32767;
    char ch='x';
    by++;              //不会产证编译错误,因为**byte、short、char**使用++或者--,
    s++;               //操作完成之后,还是本类型,因为系统默认强制类型转换
    ch++;              //仅限于byte、short、char此三种类型
    System.out.println(by+","+s+","+ch);//

3、赋值运算符(一般使用=表示)
3.1、扩展运算符 +=、-=、*=、、/=、%=、&=(按位与等)、|=(按位或等)、^=(按位异或等)、
<<=(左移等)、>>=(右移等)、>>>=(无符号右移等)

3.2、(扩展运算中在编码的时候如果出现损失精度的问题都会默认加上强制类型转换)↓↓↓
当定义a为低精度byte时,编译a=a+2会报错而a+=2则不会报错,就因为↑↑↑

3.3、int c;
c+=2; //要事先有值,才能去做扩展的赋值操作,否则c=c+2得不出结果
3.4、java不允许连等定义
a=b=c;
3.5、java中的连等赋值(虽然扩展运算顺序是从右至左,但是++b只能影响到其右侧的数,
左侧不受影响,左侧已按照+1之前赋值于左侧b值)
int b=4;
int d=b+=b-=b*=++b; //4+=4-=4*=5 最后得-12(难点:++b=5,但是在扩展运算中++b
只能影响自己及其右侧的数,左侧的b不受影响仍等于4)(**有的题当++b左右都有
变量时b自增的量会影响到其自身及其右侧的变量,而其左侧不受影响**) (此题具有
特殊性,++b放在式子左侧和中间的时候,扩展运算符无法参与进去,若想++b影响到右侧
的值,只能在+或-运算式中int j=i++ + (++i*5))(上式++b和b++效果一样)

4、比较运算符(关系运算符) 比较(关系)运算符(最终得到值一定是布尔值)

5、逻辑运算符 (用于连接布尔表达式或者值得符号) a+b(算术表达式)、a

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值