如何做网站卖商品的网站,免费psd模板素材,免费的网站模版,2020最新推广方式Java基础
一、Java概述
1、Java技术体系平台
类型简介JavaSE 标准版支持面向桌面级的应用JavaEE 企业版支持为企业开发的应用JavaME 小型版运行在移动终端的平台
2、Java重要的特点 面向对象的语言#xff08;OOP#xff09; 健壮的语言#xff0c;具有强类型转换、异常…Java基础
一、Java概述
1、Java技术体系平台
类型简介JavaSE 标准版支持面向桌面级的应用JavaEE 企业版支持为企业开发的应用JavaME 小型版运行在移动终端的平台
2、Java重要的特点 面向对象的语言OOP 健壮的语言具有强类型转换、异常处理、垃圾自动回收 跨平台的语言一个编译好的(.class)文件可以在多种系统上运行运行在不同平台对应的JVM虚拟机上 Win版本JVMLinux版本的JVMMac版本的JVM 解释型的语言编译后的代码需要在解释器上面进行运行对应的编译型语言编译后的代码可以直接在机器上运行
3、JDKJRE、JVM
JDK(Java Development Kit) Java开发工具包 JDK JRE java的开发工具【Javajavacjavadocjavap等】 JRE( Java Runtime Environment ) java的运行环境 JRE JVM JavaSE的标准类库运行开发好的.class文件只需要JRE JVM( Java Virtual Machine) Java的虚拟环境
java运行流程
java类的组织形式 4、Java开发细节 Java的源文件以.java为扩展名。源文件的基本组成是class类 一个源文件最多只能一个public类,其他类的个数不限。文件名必须按该public类名进行命名。 Java严格区分大小写 Java程序的入口是main方法可以写在非public类中有固定书写格式 public static void main(String[] args){...}二、变量
变量 变量名 值 数据类型
1、Java的数据类型
基本数据类型8种 整数类型 int 占四个字节short 占两个字节long 占八个字节byte 占一个字节 浮点类型 float 占四个字节double 占八个字节 字符型 char 两个字节 布尔型 boolean 一个字节 引用数据类型 类接口数组
2、数据类型转换
java的类型转换有两种一种是自动类型的转换一种是强制类型的转换。
1自动类型转换
规则 数据类型按精度大小进行自动转换
注意细节
多种数据类型运算会自动转换为容量最大的进行计算在自动类型转换过程中不能将精度大的数据类型转换为精度小的数据类型。byte、short和char 不会自动转换
2强制类型转换
属于自动类型转换的逆过程将容量大的数据类型转换为容量小的数据类型同时需要加上强制转换符可能会造成精度降低或者溢出的情况。
注意细节 强制转换符只针对最近的操作数有效。 int x (int)10*3.5 6*1.5; //报错
int y (int)(10*3.2 6*3.5); //正常运行char 类型可以保存int类型的常量值但是不会保存int的变量值 char c1 10000; //正常运行
int m 100;
char c2 m; //报错
char c3 (char)m; //正常运行byte和shortchar类型在进行运算时当做int进行处理
基本数据类型和String类型的转换 基本类型转String int n1 100;
float n2 1.1f;
double n3 1.2;
boolean b1 true;
String s1 n1 ; //直接加双引号便可以实现类型的转换
String s2 n2 ;
String s3 n3 ;
String s4 b1 ;
System.out.println(str1:s1 str2:s2 str3:s3 str4:s4);String类型转基本类型调用基本类型的包装类调用parseXXX方法 Integer.parseInt(123); //调用parseXXX方法
Double.parseDouble(123.4);
Float.parseFloat(123.45);
Short.parseShort(12);
Long.parseLong(123);
Boolean.parseBoolean(true);
Byte.parseByte(12);三、运算符
1、算术运算符
平时最常用的运算符
运算符运算正号、加号-负号、减号*乘号/除号%取模取余自增根据前后顺序分为先运算后取值和先取值后运算–自减根据前后顺序分为先运算后取值和先取值后运算
2、赋值运算符
将某个运算后的值赋给指定的变量。
运算符运算a 与b进行运算等于号a b 为b赋值给a加于等于a b为 a a b-减于等于a - b为 a a - b*乘以等于a * b为 a a * b/除以等于a / b为 a a / b%取余等于a % b为 a a % b
3、关系运算符
关系运算符的结果都是boolean型的经常用在if或者循环结构中
运算符运算相等于!不等于小于大于小于等于大于等于
4、逻辑运算符
连接多个条件多个关系表达式最终的结果是boolean类型
短路与 短路或 || 取反 逻辑与 逻辑或 |逻辑异或 ^
abababa|ba||b!aa^btruetruetruetruetruetruefalsefalsetruefalsefalsefalsetruetruefalsetruefalsetruefalsefalsetruetruetruetruefalsefalsefalsefalsefalsefalsetruefalse
5、位运算符
位运算符用于直接操作二进制位的运算可以用来进行高效的位操作。在很多情况下采用位运算的方法来进行计算可以提高运算效率
运算符描述示例按位与对应位都为1时结果为1否则为05 3 1|按位或对应位有一个为1时结果为1两个都为0时结果为05^按位异或对应位不同时结果为1相同时结果为05 ^ 3 6~取反对二进制数的每一位取反~5 -6左移将一个数的二进制位向左移动指定的位数5 1 10右移将一个数的二进制位向右移动指定的位数5 1 2无符号右移运算规则低位溢出高位补零5 2 1
6、三元运算符
基本语法为 条件表达式 表达式1 表达式2
运算规则
如果条件表达式为true运算后的结果是表达式1如果条件表达式为false运算后的结果为表达式2
int a 1, b 2;
//三元运算符
int ans a b ? a : b;
//等价表达
if(a b) ans a;
else ans b;7、运算符优先级
优先级如下最上面的优先级最高
运算符描述(){}括号单目运算符、--、~、单目运算符算术运算符*/, %, , -乘、除、取模、加、减等移位运算符 (, )左移、右移等比较运算符 (, , , )相等、不等、大于、小于、大于等于、小于等于按位与^按位异或逻辑与? :条件运算符赋值运算符 (, *, /, , -)赋值、加等于、减等于、乘等于等
8、标识符变量
标识符(变量)命名规则
由26个英文字母大小写0-9_或$组成数字不可以开头不可以使用保留字和关键字可以包含保留字和关键字严格区分大小写长度无限制不能包含空格
示例
int 12ab 10; //报错开头不能是数字
int a b 10; //报错中间不能加入空格
int a# 10; //报错特殊字符只能是_或者$
int goto 10; //报错不能是保留字或者是关键字标识符命名规范
包名多单词组成时都是小写aaa.bbb.ccc**类名、接口名**多单词组成时所有单词的首字母都是大写大驼峰命名法 举例TankShotGame 变量名、方法名第一个单词首字母小写第二个单词开始每个首字母大写小驼峰命名法 举例tankShotGame 常量名所有单词都是大写 举例比如所得税 TAX_RATE
9、关键字
50个关键字如下表
基本类型关键字流程控制关键字类、方法和变量相关关键字访问控制关键字异常处理关键字其他关键字booleanifclasspublictrystaticbyteelseinterfaceprivatecatchfinalcharswitchextendsprotectedfinallysynchronizeddoublecaseimplementsthrowtransientfloatwhilenewthrowsvolatileintdoreturnthislongforvoidsupershortbreakpackagecontinueimportdefault
四、数组
1、数组的赋值机制
基本数据类型赋值采用值传递的方式。数组数据类型赋值是采用引用传递的方式赋的值是地址。
举例
//基础数据类型赋值是值传递
int a 10;
int b a; //a的值10直接复制一份给b
b 80;
System.out.println(a:a b: b);
//数组的赋值是引用传递传递的是地址
int arr1[] {1,2,3}; //假设arr1指向的地址为0x0011
int arr2[] arr1; //那么arr2指向的地址也是0x0011这个地址指向的内容是一样的
arr2[0] 10; //arr2[0]修改的是0x0011地址指向的内容所以arr1[0] arr2[0] 10;
System.out.println(arr1[0]:arr1[0] arr2[0]: arr2[0]);2、二维数组
主要是申请二维数组可以通过静态申请和动态申请两种方式进行。
//静态申请,直接申请一个静态的二维固定长度数组
int arr1[][] new int[2][3];
int arr2[][] {{1,2,3},{4,5,6},{7,8,9}};//动态申请第一维长度先固定后面根据需要设定第二维度的长度
int arr3[][] new int[3][];
for(int i 0; i arr3.length; i){arr3[i] new int[arr3.length];
}