2022-03-22
软件:即一系列按照特定顺序组织的计算机数据和指令的集合。分为:系统软件 和 应用软件
系统软件:windows , mac os , linux ,unix,android,ios,…
应用软件:word ,ppt,画图板,… 人机交互方式: 图形化界面 vs 命令行方式 应用程序 = 算法 + 数据结构
第一代:机器语言
第二代:汇编语言
第三代:高级语言
面向过程:C,Pascal、Fortran面向对象:Java,JS,Python,Scala,…1991年 Green项目,开发语言最初命名为Oak (橡树)
1994年,开发组意识到Oak 非常适合于互联网
1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
1998年,发布JDK 1.2,同年发布企业平台J2EE
1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0
2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
2009年,Oracle公司收购SUN,交易价格74亿美元
2011年,发布JDK 7.0
2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本
2017年,发布JDK 9.0,最大限度实现模块化
2018年3月,发布JDK 10.0,版本号也称为18.3
2018年9月,发布JDK 11.0,版本号也称为18.9
下载:官网,github
安装:傻瓜式安装:JDK 、JRE
注意问题:安装软件的路径中不能包含中文、空格。
1.3.1 为什么配置path环境变量?
path环境变量:windows操作系统执行命令时所要搜寻的路径
为什么要配置path:希望java的开发工具(javac.exe,java.exe)在任何的文件路径下都可以执行成功。
1.3.2 如何配置?
1.1编写:
创建一个java源文件:HelloWorld.java class HelloChina{ public static void main(String[] args){ System.out.println("Hello,World!"); } }1.2编译:
javac HelloWorld.java1.3运行:
java HelloWord分类: 单行注释:// 多行注释:/* / 文档注释:/* */
作用:
① 对所写的程序进行解释说明,增强可读性。方便自己,方便别人
② 调试所写的代码
特点:
①单行注释和多行注释,注释了的内容不参与编译。 换句话说,编译以后生成的.class结尾的字节码文件中不包含注释掉的信息
② 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
③ 多行注释不可以嵌套使用
3.1 正确的注释和注释风格
使用文档注释来注释整个类或整个方法如果注释方法中的某一个步骤,使用单行或多行注释。3.2 正确的缩进和空白
使用一次tab操作,实现缩进运算符两边习惯性各加一个空格。比如:2 + 4 * 5。3.3 块的风格
行尾风格(Java API源码选择的风格)
public class Test{ public static void main (String args){ System.out.print("Hello"); } }次行风格
public class Test { public static void main (String args) { System.out.print("Hello"); } }3.4 命名风格:
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 特点:关键字中所字母都为小写 具体关键字:
现Java版本尚未使用,但以后版本可能会作为关键字使用。 具体哪些保留字:goto 、const 注意:自己命名标识符时要避免使用这些保留字
3.1 定义:
凡是自己可以起名字的地方都叫标识符。
3.2 涉及到的结构:
包名、类名、接口名、变量名、方法名、常量名
3.3 规则:
(必须要遵守。否则,编译不通过)
3.4 规范:
(可以不遵守,不影响编译和运行。但是要求大家遵守)
包名:多单词组成时所有字母都小写:xxxyyyzzz类名、接口名:多单词组成时,所有单词的首字母大写: XxxYyyZzz(小驼峰式)变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZzz(大驼峰式)常量名:所有字母都大写。多单词时每个单词用下划线连接: XXX_YYY_ZZZ注意点: 在起名字时,为了提高阅读性,要尽量意义,“见名知意”。
1.1 按数据类型分类
详细说明:**
整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)
① byte范围:-128 ~ 127
② 声明long型变量,必须以"l"或"L"结尾
③ 通常,定义整型变量时,使用int型。
④ 整型的常量,默认类型是:int型
浮点型:float(4字节) \ double(8字节)
① 浮点型,表示带小数点的数值
② float表示数值的范围比long还大
③ 定义float类型变量时,变量要以"f"或"F"结尾
④ 通常,定义浮点型变量时,使用double型。
⑤ 浮点型的常量,默认类型为:double
字符型:char (1字符=2字节)
① 定义char型变量,通常使用一对’’,内部只能写一个字符
② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量
char类型都是可以进行运算的,因为它都有对应的Unicode码布尔型:boolean
① 只能取两个值之一:true 、 false
② 常常在条件判断、循环结构中使用
1.2 按照声明位置分类
① 变量必须先声明,后使用
② 变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
③ 同一个作用域内,不可以声明两个同名的变量
4.1 涉及到的基本数据类型:
除了boolean之外的其他7种
4.2 自动类型转换
(只涉及7种基本数据类型)
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short --> int --> long --> float --> double
特别的:当byte、short、char三种类型的变量做运算时(相互做运算或者自己和自己做运算时),结果都为int型
说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
编码常见情况:
①在定义值较小的long型变量时未加L或l输出仍然正确,是因为默认为int型变量
若定义值大的变量时未加L或l,报错
②整型常量,默认为int型,
③浮点型常量,默认为double型
④通常,定义浮点型变量时,使用double型
⑤float型定义变量时必须加F或者f
4.3 强制类型转换
(只涉及7种基本数据类型):自动类型提升运算的逆运算。
需要使用强转符:()注意点:强制类型转换,可能导致精度损失。4.4 String与8种基本数据类型间的运算
String属于引用数据类型,翻译为:字符串声明String类型变量时,使用一对" ",""里可以为空String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+运算的结果仍然是String类型注意:
String s = 123;//编译错误 String s1 = "123"; int i = (int)s1;//编译错误 int number=1001; String stra="学号:"; String str2=stra+number; //+:连接符 boolean b=true; String str3=str2+b;//+:连接符 System.out.println(str2); System.out.println(str3); //练习一 char c='b'; int num=21; String str="hello"; System.out.println(c+str+num);//bhello21 System.out.println(c+(str+num));//bhello21 System.out.println((c+str)+num);//bhello21 System.out.println(c+num+str);//119hello System.out.println((c+str)+num);//bhello21 System.out.println(num+str+c);//21hellob //练习二 System.out.println('*'+"\t"+'*');//* * System.out.println('*'+'\t'+'*');//93 System.out.println('*'+("\t"+'*'));//* * System.out.println("* *");//* *2.1 计算机底层的存储方式:
所有数字在计算机底层都以二进制形式存在。
2.2 二进制数据的存储方式:
所有的数值,不管正负,底层都以补码的方式存储。
2.3 原码、反码、补码的说明:
正数:三码合一负数:3.1 图示:
3.2 图示二进制转化为十进制:
-69补码–>原码
127原码–>补码
3.3图示十进制转化为二进制:
3.4二进制与八进制、十六进制之间的转化:
【典型代码】
//除号:/ int num1 = 12; int num2 = 5; int result1 = num1 / num2; System.out.println(result1);//2 // %:取余运算 取模运算m%n(m为被模数,n为模数) //结果的符号与被模数的符号相同 //开发中,经常使用%来判断能否被除尽的情况。 int m1 = 12; int n1 = 5; System.out.println("m1 % n1 = " + m1 % n1); int m2 = -12; int n2 = 5; System.out.println("m2 % n2 = " + m2 % n2); int m3 = 12; int n3 = -5; System.out.println("m3 % n3 = " + m3 % n3); int m4 = -12; int n4 = -5; System.out.println("m4 % n4 = " + m4 % n4); //(前)++ :先自增1,后运算 //(后)++ :先运算,后自增1 int a1 = 10; int b1 = ++a1; System.out.println("a1 = " + a1 + ",b1 = " + b1); int a2 = 10; int b2 = a2++; System.out.println("a2 = " + a2 + ",b2 = " + b2); int a3 = 10; ++a3;//a3++; int b3 = a3; //(前)-- :先自减1,后运算 //(后)-- :先运算,后自减1 int a4 = 10; int b4 = a4--;//int b4 = --a4; System.out.println("a4 = " + a4 + ",b4 = " + b4);【特别说明】
(前)++ :先自增1,后运算 (后)++ :先运算,后自增1(前)-- :先自减1,后运算 (后)-- :先运算,后自减1连接符:+:只能使用在String与其他数据类型变量之间使用。赋值运算符:= += -= *= /= %=
【经典代码】
int i2,j2; //连续赋值 i2 = j2 = 10; //*************** int i3 = 10,j3 = 20; int num1 = 10; num1 += 2;//num1 = num1 + 2; System.out.println(num1);//12 int num2 = 12; num2 %= 5;//num2 = num2 % 5; System.out.println(num2); short s1 = 10; //s1 = s1 + 2;//编译失败 //short与int类型运算结果为int需要强制类型转换 s1=(short) (s1+2);//正确格式 s1 += 2;//结论:不会改变变量本身的数据类型 System.out.println(s1);【特别说明】
运算的结果不会改变变量本身的数据类型开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;) 方式一:num = num + 2; 方式二:num += 2; (推荐)开发中,如果希望变量实现+1的操作,有几种方法?(前提:int num = 10;) 方式一:num = num + 1; 方式二:num += 1; 方式三:num++; (推荐)【典型代码】
int i = 10; int j = 20; System.out.println(i == j);//false System.out.println(i = j);//20 boolean b1 = true; boolean b2 = false; System.out.println(b2 == b1);//false System.out.println(b2 = b1);//true【特别说明】
比较运算符的结果是boolean类型
> < >= 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); } System.out.println("num1 = " + num1); boolean b2 = true; b2 = false; int num2 = 10; if(b2 && (num2++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); } System.out.println("num2 = " + num2);
说明:
逻辑运算符操作的都是boolean类型的变量区分&与&&
相同点:
&与&&的运算结果相同当符号的左边是true时,二者都会执行符号右边的运算不同点:当符号的左边是false时,&继续执行符号右边的运算,&&不再执行符号右边的运算开发时:推荐使用&&区分|与||
相同点:
|与||的运算结果相同当符号的左边是false时,二者都会执行符号右边的运算不同点:当符号的左边是true时,|会继续执行符号右边的运算,||不再执行符号右边的运算开发时:推荐使用||逻辑异或^
符号的左右相同即为false,不同即为true。boolean b3 = false; b3 = true; int num3 = 10; if(b3 | (num3++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); } System.out.println("num3 = " + num3); boolean b4 = false; b4 = true; int num4 = 10; if(b4 || (num4++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); } System.out.println("num4 = " + num4);【典型代码】
int i = 21; i = -21; System.out.println("iPHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
2014-09-05
PHP中的(++i)前缀自增 和 (i++)后缀自增
2014-09-05
php递归返回值的问题
2014-09-05
常用dos命令及语法
2014-09-27
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
2017-04-12
php 做权限管理
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
nginx,php日志分割
2014-09-05
解决ThinkPHP在Nginx下无法使用pathin方式的问题
2014-09-05
c语言新手入门代码
2022-03-22
荣耀大天使华为版下载v1.10.52 安卓版
角色扮演 886.2M
下载赛尔号星球大战百度版本下载v5.9 安卓版
动作闯关 582.8M
下载航海王启航指趣版下载v24.0 安卓服
卡牌对战 990.9M
下载想不想修真指趣版下载v3.8.0 安卓最新版本
角色扮演 208.0M
下载梦幻逍遥飞仙篇手游下载v3.0.5 安卓版
角色扮演 187M
下载极品芝麻官齐齐乐客户端下载v3.7 安卓官方版
经营养成 337.3M
下载魔界军团重制版手游下载v1.2.1 安卓版
动作闯关 169.1M
下载奥特曼王者传奇国际服下载v1.14 安卓版
卡牌对战 454M
下载乐高无限小米版下载v1.99.602.27230 安卓版
下载
荣耀大天使手游小米版下载v1.10.52 安卓最新版
下载
梦幻家装手游最新版下载v1.1 安卓版
下载
长安幻世绘oppo版本下载v1.1.14.0 安卓正版
下载
机甲大作战h5最新版下载v701 安卓版
下载
青鸾繁华录4399官方版下载v9.7.4 安卓版
下载
想不想修真起点版本下载v3.8.0 安卓版
下载
零界之痕taptap版下载v1.112452.9886 安卓版
下载