Java基本语法笔记
- 格式:pdf
- 大小:111.44 KB
- 文档页数:4
java基础知识点笔记Java是一门非常重要的计算机语言,具有良好的跨平台性和易读性和易学性。
尤其是基于Java开发的移动端和Web端产品,其优秀的性能和可扩展性在行业中得到了广泛的青睐。
作为Java开发工程师,熟练掌握Java的基础知识非常重要。
一、Java基本语法Java程序包含一个或多个类,不同类可以相互调用使用。
每一个Java程序都需要有一个入口点,即main()函数。
在Java中,注释采用“//”或“/*...*/”的形式,可以单行或多行注释。
Java变量需要先声明再使用,可以定义基本类型变量和引用类型变量。
Java中的运算符包括算术运算符、逻辑运算符等。
二、Java面向对象编程Java是一门面向对象的编程语言,对象是Java程序的基本组成单元。
Java中的类封装了数据和方法,可以实现类的继承和多态。
在Java中,使用构造函数实例化对象,可以使用访问控制符来控制类成员的访问权限。
三、Java流程控制语句Java中的流程控制语句有条件语句(if、if-else、switch)、循环语句(while、do-while、for)等。
其中,if语句可以进行嵌套,switch语句可以使用break语句避免case穿透问题。
四、Java数组Java中的数组是一组相同类型的数据序列,从0开始编号,使用方括号表示。
在Java中可以使用foreach来遍历数组,也支持多维数组。
五、Java异常处理Java程序中的异常指的是程序出现的错误。
异常处理是Java程序中的一部分,可以使用try-catch语句来捕获并处理异常。
Java中的异常类型包括运行时异常和受检查异常。
六、Javaio编程Java中的文件和I/O操作称为io编程。
Java的io编程采用字节流和字符流,其中字节流用于处理二进制数据,字符流用于处理文本数据。
Java中的io操作需要进行文件的读取、写入等操作,可以使用File类来操作文件。
七、Java线程Java程序中,线程指的是一条执行序列,Java中的线程可以继承Thread类或实现Runnable接口。
java基础语法2-运算符与流程控制关键字-标识符-常量和变量-运算符-流程控制-⽅法-数组5 运算符算术运算符Arithmetic Operators赋值运算符Assignment Operators⽐较运算符Compare Operators逻辑运算符Logic Operators位运算符Bitwise Operators三元运算符Ternary Operator5.1算术运算符Arithmetic Operators注意:1.除法操作两个操作数是整数时,结果也是整数,余数部分舍弃int x = 3500;System.out.println(x / 1000 * 1000);2.%操作获得的是除法操作的余数%结果的符号取决于被模数,即%前⾯的数的符号决定了结果的正负5.1.1++,--++:⾃加放在变量前,先⾃增,再使⽤放在变量后,先使⽤,后⾃增--:⾃减放在变量前,先⾃减,后使⽤放在变量后,先使⽤,后⾃减注意:只能对变量使⽤练习题:练习题1:int a = 10;int b = 10;int c = 10;a = --c;b = c++;c = ++a;经过以上操作,abc的值分别是多少?练习题2:int a = 4;int b = (++a)+(a++)+(a*10);经过以上操作,ab的值分别是多少?练习题5.1.2字符串参与运算:1.两个操作数都是字符串2.⼀个字符串⼀个变量3.多个操作数“+”除了字符串相拼接功能外,还能把⾮字符串转换成字符串,加空串即可String s = 5 + "";思考:System.out.println("5+5="+5+5);//打印结果是?System.out.println(5+5+"hello");思考5.2扩展的赋值运算符符号: = , +=, -=, *=, /=, %=(扩展的赋值运算符) 左侧为变量,右侧为字⾯量,或变量,或表达式⽰例: int a,b,c; a=b=c=3;//⽀持连续赋值 int a = 3;a += 5; //等同运算:a=a+5;思考:short s = 3;s = s + 2; //报错s += 2; //扩展的赋值运算符会默认做强制的类型转换s=(short)(s+2)s=s+2//编译失败,因为s会被提升为int类型,运算后的结果还是int类型。
第⼀章-Java基础笔记Java语⾔的概述Java是⼀门⾯向对象的语⾔,Java相对于C语⾔来说学习相对简单,它主要的三⼤特点就是:封装、继承、多态,并且只需要进⾏⼀次源码编译,在任何装有对应版本的JVM 虚拟机环境的计算机下运⾏;Java的三个版本JavaSE主要⽤于桌⾯应⽤的开发JavaME主要⽤于嵌⼊式系统的开发JavaEE主要⽤于企业级的WEB端开发和服务器开发Java环境介绍JDK - 提供了开发者的⼀些⼯具包,并包含了[JRE和JVM]JRE - Java的运⾏环境,提供了运⾏时需要的类库,并包含了[JVM]JVM - Java的虚拟⼀块内存区域,⽤于执⾏Java的代码Java跨平台交互图Java代码的运⾏机制后缀点java的⽂件会通过 javac命令进⾏⽂件的编译成⼀个能够被JVM读懂的字节码⽂件,通过加载、校验、初始化的过程都内存中,通过JVM寄存器读取⽂件中的⾏号,进⾏执⾏相关代码;注释注释是为了在编写程序时对某个类、⽅法或是⼀段代码进⾏功能作⽤的说明,它不会被编译成代码执⾏,只是起到⼀个描述作⽤,便于对代码的理解;Java中的注释分为3种:单⾏注释://多⾏注释:/* */⽂档注释:/** */对注解的内容⽣成JavaDoc⽂档DOS命令进⼊到要⽣成Doc⽂档的层级⽬录,执⾏:javadoc -encoding UTF-8 -charset UTF-8 ⽂件名称/*** @Author JavaCat7* @Description 这是⼀个⽂档注释*/public class Demo{/*** @Parameter args 对参数的描述* @Description 这是⼀个⽂档注释*/public static void main(String[] args){//这是⼀个单⾏注释System.out.println("Hello Java");/*这是多⾏注释这是多⾏注释*/}}标识符每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;规范:每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;**规范:**1.严格区分⼤⼩写;2.开头可以是$ 或 _ 或 A-Z a-z的字母组成,也可以汉字(不会这么⼲);3.可以由数字、字母或者是 $ 或 _ 组成,但数字不能⽤于开始;4.不可以包含特殊字符;5.不能以Java语⾔中的保留字作为命名;6.类名采取⼤驼峰命名法;7.⽅法和变量采取⼩驼峰命名法;8.常量采取⼤学加_进⾏命名;基本数据类型Java是强类型计算机语⾔,所有的变量必须先定义才能使⽤,对于强类型⽽⾔主要就是指的数据安全,强类型的语⾔有很多,⽐如C、C++、python...计算机存储单位换算bit(位) - 是计算内部数据存储的最⼩单元,通过8个⼆进制位进⾏表⽰;byte(字节) - 是计算机中数据处理的基本单位,通常使⽤B来表⽰;8个bit(位) = 1B(字节)1024个B(字节) = 1KB1024个KB = 1MB1024个MB = 1GB....//整数类型byte a = 1;short b = 2;int c = 3;long d = 4L;//⼩数类型float e = 5.0f;duble f = 6.0d;//字符类型char g = 'a';//布尔类型boolean h = true;boolean i = false;数据类型的转换各数值相关数据类型⽀持类型上的转换,既可以把排序级别较低的类型转换成排序级别较⼤的类型,也可以把排序级别较⾼的类型转换成级别较低的类型(但会造成数据的丢失);数据的转换强制类型转换 - 在要转换的变量前使⽤:要转换的对应数据类型如- (int)⾃动类型转换 - 在不同的数值数据类型运算中,它会以排序级别较⾼的数据类型作为基础⾃动转换int number1 = 128;//正常byte的值是 -128 - 127,强制把int类型转换成byte会造成数据的不精确byte number2 = (byte)number1;int number3 = 519;float number4 = 1.0f;//在运算过程中因为float的排序级别⽐int⾼,那么它会⾃动转换成float类型在完成运算float number5 = number3 + number4;变量,静态变量,常量及作⽤域变量是指可以变化的值,通过数据类型和变量名可以在内存中申请⼀块存储的空间,通过内存的引⽤地址可以设置改变内存中存储的值或者修改值,所有的变量必须先赋值才可以使⽤;成员变量成员变量是指在类中与⽅法同级的位置中定义的成员变量,在该位置定义的变量可以不⽤设置值就可以使⽤,因为它会对类进⾏初始化,并完成初始化赋值,就算不给他们赋值也会有默认的初始值,他们的默认初始值都是最⼩的单元;作⽤域成员位置的变量,可以在⾮静态⽅法的所有位置使⽤,如果要在静态⽅法中使⽤,需要先创建对象;public class Variable{int a; //默认为:0float b; //默认为:0.0char c; //默认为:''boolean d; //默认为:false}局部变量局部变量是指在⽅法内部定义的变量,必须要先完成初始化后,才可以被使⽤;作⽤域局部位置的变量,外部⽆法使⽤,只能在⽅法内部使⽤,可以和外部的变量名称相同;public class Variable{int number;public void method(){int number = 3;//可以和成员位置的变量名称相同}}静态变量静态变量是指被static关键字修饰的变量,被修饰的变量⼜称为类变量;作⽤域静态变量可以作⽤域与所有⽅法中,静态变量只能定义在类的成员位置;public class Variable{static int number ;public static void main(String[] arags){System.out.println(number);}public void method(){System.out.println(numbe);}}常量常量是指不能被改变的值,它在创建到成员位置必须要先完成赋值,⼀旦被创建它的值是不允许被更改的;作⽤域它的作⽤域和成员变量相同public class Variable{final int NUMBER = 3.1415926;}静态常量静态常量是指从属于类的常量,在完成初始化以后是不可以被修改的,并且被public所进⾏修饰;作⽤域它的作⽤域和静态变量相同运算符算术运算符int a = 5;int b = 2;int number = a + b; //number = 7;int number = b - a; //number = 3;int number = a * b; //number = 10;int number = a / b; //number = 2,只取整数;double number = a / (double)b; //number = 2.5int number = a % b; //number = 1;⾃增⾃减运算符int a = 1;int b;b = a++; //b = 1; 先把a的值赋值给b,后a进⾏ +1 操作;b = a--; //b = 2; a前⾯进⾏了⾃增那么就是2,先把2赋值给b,然后进⾏ -1 操作;b = ++a; //b = 2; 前⾯a进⾏了⾃减那么就是1,先对a进⾏⾃增加1,然后在赋值给b;b = --a; //b = 1; 前⾯a是2,先对a进⾏⾃减1,在赋值给b;赋值运算符int a = 5;//把 5 赋值给 a;int b = 2;//把 2 赋值给 b;a += b; // a = 7(a+b的结果在赋值给a);a -= b; // a = 3;a *= b; // a = 10;a /= b; // a = 2;a %= b; // a = 1;关系运算符int a = 5;int b = 2;a > b; //truea < b; //falsea >= b; //falsea <= b; //truea == b; //falsea != b; //true逻辑运算符boolean a = true;boolean b = false;a &&b = false;//都true则true,第⼀个条件为false就不会在看第⼆个条件,直接返回falsea ||b = true;//⼀个条件为true则true,第⼀个条件为tre就不看第⼆个条件,直接返回true! a = false;//取反a &b = false;//2个条件都要执⾏a |b = true;三元运算符int a = 5;int b = 5;a ==b ? "等于":"不等于"; //为true返回第⼀个,为false返回第⼆个流程控制语句If语句if语句就是判断条件是否成⽴,成⽴就执⾏if中的代码,不成⽴就不进⼊;boolean flag = true;if(flag){System.out.println("...");}if...else语句if...else语句就是根据判断的条件是否成⽴,成⽴⾛if语句,不成⽴⾛else语句;boolean flag = true;if(flag){System.out.println("成⽴");}else{System.out.println("不成⽴");}if...else if语句if...else if⽀持多条件的判断,只会进⼊⼀个匹配的条件;boolean flag = true;boolean fail = false;if(flag){System.out.println("条件匹配");}else if(fail){System.out.println("条件匹配");}else{System.out.println("条件都不匹配");}switch条件控制语句witch语句从JDK1.7开始可以⽀持匹配:String字符串;注意事项:每个case 后⾯必须跟⼀个数值常量或字符串常量⽤于匹配;匹配的语句后⾯需要加上break关键字,防⽌case穿透;String week = "星期⼀";switch(week){case "星期⼀":System.out.println("今天是星期⼀");break;case "星期⼆":System.out.println("今天是星期⼆");break;case "星期三":System.out.println("今天是星期⼆");break;default:System.out.println("今天星期⼏都不是");}循环控制语句for循环语句for(初始值,条件表达式,更新)for(int i = 1 ; i <= 10 ; i++){System.out.println(i);}增强for循环for(接收类型的变量,表达式)int [] arrays = {1,2,3,4,5,6,7,8,9,10};for(int i : arrays){System.out.println(arrays);}while循环语句while(条件表达式)int number = 1;while(number <= 100){System.out.println(number);number ++;}do...while循环语句do{先把语句执⾏⼀遍}while(条件表达式);boolean flag = true;do{System.out.println("先执⾏⼀遍");flag = false;}while(flag);break和continue关键字break关键字结束循环的意思;for(int i = 1; i <= 100; i++){if(i == 10){System.out.println("打印10后结束循环");break;}}continue关键字跳过当前循环,进⼊下⼀次循环;for(int i = 1 ; i <= 10; i ++){if(i % 2 == 1){continue;}System.out.println("打印:"+i);}⽅法概述:⽅法就相当于使⽤多⾏代码进⾏组合去实现的⼀个功能⽚段,对代码进⾏封装利⽤,可实现多次调⽤;⽅法的定义修饰符返回值⽅法名称(形参形参名称){⽅法体}public class Function{public static void main(String[] arags){}public void method1(){}public void method2(String name,int age){}public static void method3(){}public int method03(){int a = 3;return a;}public int method04(int a,int b){if(a == b){System.out.println(a + "和" + b + "相等");return -1;}return a > b ? a : b;}}⽅法的重载⽅法的重载是指⽅法名称相同,传递的参数类型不同,个数不同,顺序不同与返回值⽆关;这样的⽅法被称为⽅法的重载;public class Function{public int max(int a,int b) {return a > b ? a : b;}public double max(double a,double b){return a > b ? a : b;}}形参和实参形参是指在()内部的参数,实参是指被真实传递的参数;public class Function{public static vid main(String[] args){Function function = new Function();function.max(3,5);}public int max(int a,int b) {return a > b ? a : b;}}可变参数在⽅法的()中我们有时候不知道要传递多少参数,那么我们可以传递⼀个数据类型紧跟后⾯加上...来表⽰;但需要注意的是⼀个⽅法中指允许⼀个可变参,如果有其他类型的参数,那么可变参数需要写在最后⾯;可变参数本质上就是⼀个数组;public class Function{public void method(String name,int... numbers){for(int num : numbers){System.out.println(num);}}}递归递归的本质就是⾃⼰调⽤⾃⼰,它可以解决⼀些业务,但效率和开销较⼤,对⼀些⽐较⼩的运算可以使⽤;//递归求3的阶乘public class Founction{public static void main(String[] args){}public int founction(int number){int result = 1;if(number == result){return result;}return number * founction(number - 1);}}数组数组就是⼀组数据的集合,Java中的数组必须存储和数据类型相符合的值,不允许与定义的数据类型不匹配;⼀旦数组被创建出来,它的长度就不允许被改变,数组有下标(索引)的概念,都是从0开始,如果操作的数据超过数组的长度那么就会报出下标索引越界异常[ IndexOutofBoundsException ];数组的定义int[] array = new int[3];int array[] = new int[3];int array[] = {1,2,3};数组的内存模型图数组的遍历⽅式int[] arr = new int[10];//⽅式⼀for (int i = 0; i < arr.length ; i ++) {System.out.println(arr[i]);}//⽅式⼆for (int num : arr) {System.out.println(num);}⼆维数组int[][] arr = new int[3][2];String[][] strArr = {{"hello","hello"},{"hi","hi","hi",{"java","java","java","java"}}Arrays⼯具类Arrays数组的⼯具类,是jdk已经帮我们提供好的⼀套数据⼯具类,⽅便我们对数据相关进⾏⼀些操作;int[] arr = {3,51,1,33,82,22,55,53};Arrays.toString(arr);//把数组变成⼀个字符串Arrays.sort(arr);//对数组内容进⾏升序排列Arrays.fill(arr,0);//把数组的内容全部进⾏替换为0常见算法冒泡排序public static int[] arr = new int[]{5, 2, 7, 4, 6, 9, 8, 13, 19, 11, 17, 15};//冒泡排序算法public static void popArithmetic(int[] arr) {//⽐较的轮数是数组长度-1for (int i = 0; i < arr.length - 1; i++) {//每次⽐较⼀轮,需要减少1次⽐较的次数for (int j = 0; j < arr.length - i - 1; j++) {//如果前⾯的数据⽐后⾯⼤,那么就交换位置if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}System.out.println("最终结果是:" + Arrays.toString(arr));}选择排序public static int[] arr = new int[]{5, 2, 7, 4, 6, 9, 8, 13, 19, 11, 17, 15};//选择排序public static void selectOrderArithmetic(int[] arr) {//⽐较的轮数是数组长度-1for (int i = 0; i < arr.length - 1; i++) {//每⽐较⼀次,需要减少1次⽐较的次数,会把⼩的先往前排for(int j = i+1;j<arr.length;j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}System.out.println("最终结果是:" + Arrays.toString(arr));}⼆分查找public static int[] arr = new int[]{1, 2, 3 , 4, 6, 7, 8, 13, 19};//2分查找法public static void branchFind(int [] arr,int number){int startNode = 0;int endNode = arr.length-1;int middle = 0;while (startNode <= endNode){//中间的指针由开始节点和结束节点计算得来middle = (startNode+endNode)/2;if(number == arr[middle]){System.out.println("找到了");break;}else if(number < arr[middle]){endNode=middle-1;System.out.println(number+"⼩于中间值,结束节点变更为中间节点-1"); }else if(number > arr[middle]){startNode = middle+1;System.out.println(number+"⼤于中间值,开始节点变更为中间节点+1"); }else{System.out.println("没有找到该元素");break;}}}。
诚信、创新、开放、合作JAVA的面向对象编程--------课堂笔记面向对象主要针对面向过程。
面向过程的基本单元是函数。
什么是对象:EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。
能够做什么(方法):告诉外界对象有那些功能。
后者以前者为基础。
大的对象的属性也可以是一个对象。
为什么要使用面向对象:首先,面向对象符合人类看待事物的一般规律。
对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。
方法的定义非常重要。
方法有参数,也可能有返回值。
注意区分:对象(本身)、对象的实现者、对象的调用者。
分析对象主要从方法开始。
我们通过类来看待对象,类是对象的抽象。
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。
对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。
这样才能使每个对象本身做成最好的。
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。
可复用性是OOP的基础。
比较面向过程的思想和面向对象的思想:面向过程的思想:由过程、步骤、函数组成,以过程为核心;面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。
面向过程是先有算法,后有数据结构。
面向对象是先有数据结构,然后再有算法。
在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。
开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。
从语法上来看,一个类是一个新的数据类型。
在面向对象编程中,除了简单数据类型,就是对象类型。
定义类的格式:class Student{代码}注意类名中单词的首字母大写。
实例变量:定义在类中但在任何方法之外。
(New出来的均有初值)局部变量:定义在方法之中的变量。
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。
这是局部变量和实例变量的一大区别。
java复习期末重点考点总结一、基本语法1. 变量和常量定义变量和常量,变量的作用域,变量类型转换等。
2. 数据类型Java的基本数据类型,如整型、浮点型、字符型、布尔型等。
3. 运算符Java的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。
4. 控制结构条件语句,如if语句、switch语句。
循环语句,如for循环、while循环、do-while循环。
5. 数组一维数组、多维数组的定义和使用。
6. 方法定义方法,方法的重载、调用以及参数传递。
7. 异常处理Java的异常处理机制,如try-catch-finally语句块。
常见的异常类及其使用。
二、面向对象1. 类和对象类和对象的定义,成员变量和成员方法的访问权限。
2. 构造方法和析构方法构造方法和析构方法的定义和使用。
3. 继承子类和父类的关系,继承的实现和使用。
方法重写和父类引用子类对象的特点。
4. 接口接口的定义和实现,接口的多继承。
多态的概念和实现,向上转型和向下转型。
6. 包包的定义和使用,包的导入和导出。
三、输入输出1. 文件操作文件的读取和写入,字符流和字节流的使用。
2. 序列化和反序列化对象的序列化和反序列化,使用序列化实现对象的存储和传输。
四、集合框架1. 集合接口和类常用集合接口和类的介绍和使用,如List、Set、Map等。
2. 迭代器集合的迭代器,实现对集合元素的遍历和操作。
3. 泛型泛型的概念和使用,泛型类和泛型方法。
4. 排序和比较使用集合框架实现元素的排序和比较。
五、线程1. 线程的创建和启动线程的创建方式,使用Thread类和Runnable接口。
2. 线程同步线程同步的方法,如使用synchronized关键字实现线程同步。
3. 线程通信线程之间的通信方式,如使用wait()、notify()、notifyAll()方法进行线程通信。
线程池的定义和使用,使用线程池实现线程的复用。
六、网络编程1. 套接字套接字的概念和使用,使用套接字实现网络通信。
这两天一直比较犯迷糊,每天都不知道在忙啥,所以有些断更了,真的是,咳咳,明天就要接手新班了,对我来说是喜忧参半吧,喜的是可以锻炼一下自己的能力,忧的是怕自己做不好,不过还是尽力吧。
大纲:String:1.1String方法1.2String特点1.3 StringBuffer1.4 StringBuilder1.5 Jdk升级的目的1.6 基本数据类型对象包装类1.7基本类型======>字符串1.8 字符串=====>基本类型1.9 整数具备不同的进制体现。
2.0自动拆装箱面试题挨个走一遍吧,Let's go.String:String对象的初始化由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下:String s = “abc”;s = “Java语言”;其实按照面向对象的标准语法,其格式应该为:String s = new String(“abc”);s = new String(“Java语言”);只是按照面向对象的标准语法,在内存使用上存在比较大的浪费。
例如String s = new String(“abc”);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象s申请的空间。
其它的构造方法的参数,可以参看String类的API文档。
1.1String方法获取获取字符串中字符的个数(长度)int length();根据位置获取字符char charAt(int index);根据字符获取在字符串中的第一次出现的位置int indexOf(int ch);【因为char类型可以转换成int(对应的是0---2^16),依据ASCII,返回-1时,表示这个字符不存在,此方法也可以判断字符是否存在。
】从指定位置进行ch的查找第一次出现位置int indexOf(int ch,int fromIndex);根据字符串获取在字符串中的第一次出现的位置int indexOf(String str);从指定位置进行ch的查找第一次出现位置int indexOf(String str,int fromIndex)根据字符获取在字符串中的最后一次出现的位置int lastIndexOf(int ch);从指定位置进行ch的查找最后一次出现位置int lastIndexOf(int ch,int fromIndex);根据字符串获取在字符串中的最后一次出现的位置int latindexOf(String str);从指定位置进行ch的查找最后一次出现位置int lastindexOf(String str,int fromIndex);获取字符串中一部分字符串,也叫子串String subString(int beginIndex,int endIndex);【包含begin,但不包含end】String substring(int beginIndex);从beginIndex到最后转换将字符串变成字符串数组(字符串的切割)String [] split(String regex):【里面的条件是一个正则表达式】将字符串变成字符数组char [] toCharArray();将字符串变成字节数组byte [] getBytes();将字符串中的字母转成大小写String toUpperCase();【大写】String toLowerCase();【小写】将字符串中的内容进行替换String replace(char oldch,char newch);String replace(String s1,String s2);将字符串两端的空格去除String trim();将字符串进行连接String concat(String str);判断两个字符串内容是否相同boolean equals(Object obj);【复写Object的方法,所以传递的是Object对象】boolean equalsIgnoreCase(String str);忽略大写比较字符串内容。
Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。
⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。
2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。
3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。
另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。
4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。
5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。
6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。
多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。
java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。
合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。
不能把java关键字和保留字作为标识符。
标识符对⼤⼩写敏感。
关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。
第二章java基本语法§。
1 java程序的构成前言:java语言源程序采用有效的16bit双字节字符编码标准(uni code)。
Java程序构成分物理构成和逻辑构成。
逻辑构成是基于信息组织的角度,而物理构成是基于程序组成的角度•§2.1。
1逻辑构成程序头包的引用:主要是指引用jdk软件包自带的包,也可以java源程序逻辑构成是自己定义的类。
引用后程序体中就可以自由应用包中的类的方法和属性等。
类的定义:java语言源程序中可以有多个类的定义,但必须有一个主类,此主类是java程序运行的入口点.在应用程序中,主类为包含main方法的类;在applet中,主类为用户自定义的系统applet类的扩展类•在java语言源程序中,主类的名字同文件名一致。
注:类的定义有包括类头声明和类体定义。
类体中包括属性(成员变量)声明和方法(行为)描述。
【例2.1】下面是一个应用程序,也是一个applet,既可以在命令行下运行,也可以嵌到html网页中用appletviewer 命令运行。
程序如下:// 程序文件名为welcomeapplet.java 注释语句import java 。
applet。
* ;import java.awt 。
*; 卜引入包import java.awt 。
event.* ;public class welcomeapplet exte nds applet impleme nts action listener {主类类头public void action performed (actionevent e) {txtdisp.settext (txtname 。
gettext() + "欢迎你来到 java 世界!”; }public static void main (string args[]){frame f=new frame( 欢迎");f.addwindowlistener(new windowadapter()) {public void wi ndowclosi ng(wi ndoweve nt ev {system o exit (0);} }welcomeapplet a=new welcomeapplet ();a 。
J ava基本语法规范
1、代码编写规范
a)代码规范地编写可以提高维护性和代码的改进性,也是让别人理解代码的一个途
径。
给代码加上注释
提高代码的质量,便于其他代码编写者理解代码,要适当正确地使用代码注释功能给代码分段/缩进
另一种提高代码可读性,就是代码分段缩进,代码缩进主要是在代码块,而代码快是在{}之中的,缩进一般是速进一个单位字符。
方法直接通常相隔一个空行
设置短小的独立的代码行
设置最小代码行是为了让代码更容易理解,从而方便维护和代码到改进。
通常我们的没一行代码只做一个事情。
说明运行顺序
代码运行顺序正常情况下是自上而下执行的,代码到运行顺序通常是在进行逻辑运算的时候应用的。
2、注释
注释是提高代码质量,有利于增加代码的可读性和它到清晰程度。
//单行注释
单行注释加在语句的上面,说明这行代码到作用
使用:是成员方法内部的单行注释,用来说明业务逻辑、代码段,和暂时变量到声明
/**/多行注释
是一种c语言注释,它注释掉的内容通常是程序员暂时不用又想保留的代码。
/***/文档注释
文档注释也称作是机可读注释。
它可以为当前内产生一个外部文档,帮助开发者理解它注释的用做什么用途。
通常紧跟这接口、类、成员方法、字段声明。
3、标识符
变量命名规则
变量名是由unicode字符构成
变量名在其作用域范围内必须唯一
变量名区分大小写
变量名由数字字母_$,开头不能为数字。
变量名不能是关键字或者保留字(const,goto).
Java关键字和保留字
Java中所有关键字都是小写的。
可以分成以下几类:
访问控制:private protected public
类方法变量修饰符:abstract class extends fianl implements interface native new static strictfp synchronized transient volatile
程序控制:break case continue default do else for if instanceof return switch while
错误处理:try catch finnally throw throws
包:import package
基数据类型:byte short int long char float double boolean
变量引用:this super void
值相关:null,true,false
保留字:const goto
良好的编程习惯
变量名:有意义的英文进行命名,尽量减少缩写
名字要有意义,见名识意
避免使用单个单词和下划线。
默认命名原则:
字段属性:完整英文描述,第一个单词字母小写,此后任何一个单词字母都大写,静态的命名使用全大写处理。
方法:采用完整英文描述,,第一个单词字母小写,此后任何一个单词字母都大写,第一个单词尽量是动词。
Boolean类型方法使用第一个单词可以是is 包:全小写
4、数据类型
简单数据类型
6种类型
字符:char
布尔型:boolean
浮点型:float double
整型:byte short int long
1、布尔型
a)占8位(8bit),一个字节,值只有true false
2、字符型
a)Char占用16位,两个字节,使用的是Unicode字符。
范围是十六进制的数字。
从\u0000----\uffff
b)转义字符
i.\n换行
ii.\t Tab建
iii.\b退格
iv.\r回车
v.\f换页
3、整型
a)整型表现形式有十进制十六进制八进制,其中八进制以数字0开头,十六
进制以0X or0x开头
b)整型变量占用空间存值范围
i.byte8位-128-127
ii.short16位-32768-32767
iii.int32位
iv.long64位
4、浮点型
a)它有两种表现形式十进制、科学技术法
b)double占64位float占32位,声明到实数默认类型是double类型
科学计数法e or E前面必须有数字,后面到数字必须是整数
简单数据类型的转换
在实际应用中,常用到整型字符型实型混合运算。
在这个时就要进行类型转换
类型转换有两种自动转换强制转换
位数低的转换向位数高到转换视作是自动类型转换、只要操作数有一个是高位的类型,那么得到到类型就是该高位的操作数类型
高位数向地位数进行转换的时候就用到了强制转换。
强制类型转换可能会造成数据丢失。
语法(类型)操作数
复合数据类型
class,interface,数组,将在以后给予介绍
5、常量和变量
变量常量的区分主要是在程序执行过程中。
常量
常量是使用final关键字进行修饰的。
它在程序的执行过程中值保持不变,常量名通常全大写。
变量
变量,顾名思义,它的值在程序运行当中是可变的。
它的声明可以在程序中到任何一个位置。
但在使用前必须赋值。
6、运算符和表达式
运算符
算术运算符:+-*/%++--
关系运算符:<>>=<===!=
Boolean逻辑:!&&||
位运算符:>><<>>>&|^~
赋值运算:=+=-=*=/=
条件运算符:?
表达式
算术表达式:加减乘除自加/减取余运算
比较表达式:<>>=<===!=
比较运算符的结果只有true和false
位运算表达式:>><<>>>&|^~
右移左移无符号右移按位于按位或xor运算符部位运算符逻辑表达式:
!&&||
赋值表达式:
=+=-=*=/=。