java学习笔记

合集下载

java基础知识点笔记

java基础知识点笔记

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读书笔记

Java读书笔记

Java读书笔记第一篇:Java读书笔记读书笔记1、类和对象:类是用来定义一组对象共同具有的状态和行为的模版。

而对象是现实世界中个体或事物的抽象表示,并且封装了它们的属性和行为。

2、为了防止命名冲突,Java采用了管理类文件的机制,即类包机制。

(package)定义包名的语法格式:“package包名;”Java命名规则要求包的命名需要使用小写字母。

3、成员变量和成员方法:1成员变量是在类体中定义的变量即全局变量,○成员变量一般用于定义对象的状态。

成员变量是给对象使用的,每个对象被创建后都会有属于自己的属性,即成员变量。

通过修改这些属性,从而改变对象的某个状态。

2成员方法是对象行为的描述。

○定义成员方法的语法格式:“[修饰符] 返回值类型方法名([形参表]){······//方法体}”修饰符:可以是:publicprivateprotactedstaticfinall等;返回值类型:如果方法需要返回值,必须这里声明方法的返回值类型,可以是基本数据类型(int short double booleanvoid等),也可以是对象类型如:数组、字符串等。

形参表:(可选部分)说明方法被调用时应该向它传递的数据。

形参表可以有一个也可以有多个,当有多个形参时每个形参之间要用“,”隔开。

1创建对象:创建对象使用到new语句。

4、对象:○声明并创建对象的语法格式如下:“类名对象名=new 类构造方法()”构造方法:构造方法是类创建对象是必须执行的方法,用于构造一个新的对象并初始化对象属性。

2访问对象的属性:○语法格式:“对象名.属性”3执行对象的行为:○对象的行为就是对象的成员方法,通常说调用或执行对象的某个方法。

语法格式:“对象名.成员方法名();”4对象的销毁:Java提供了垃圾回收机制,对不再使用的对象会自动销毁,也可○以在程序中显式的为某个对象赋null值,使对象不再被使用。

JAVA(J2SEJ2EE)学习笔记090911

JAVA(J2SEJ2EE)学习笔记090911

JAVA(J2SE/J2EE)JAVA(J2SE/J2EE)学习笔记学习笔记/kv2004Java Paradise 群号:81556987,欢迎传播!JA V A(J2SE)基础一、JAVA 语法基础标识符-date:0908111.什么叫标识符?就是一个名字2.在JAVA 中,遇见的标识符有类名、方法名和变量名。

3.标识符的命名规则:i.标识符有字母、数字、下划线(_)以及美元($)符号组成。

ii.标识符不能以数字开头iii.不能和JAV A 中的关键字或者保留字重名4.标识符的命名规范:i.最好不要一下划线(_)或者美元($)符号开头ii.如果有多个单词组成,那么每个字符的首字符都大写。

例如:class Student{}class HelloWorld{}iii.如果标识符是方法名或者变量名:首字母应该小写;如果有多个单词组成,那么从第二个单词开始,首字母大写。

例如:String name;//用户名int stuAge;//学生的年龄iv.标识符最好有一定的意义。

int 整数=1;v.如果是常量名,那么全部字母都大写。

final double PI=3.1415926;关键字-date:0908111.什么叫关键字?具有特殊意义的一些单词。

2.举例说出几个关键字byte short int long float double char booleanpublic private protectedvoidreturntrue falsestatic final abstractif elseswitch caseforwhiledotry catchcontinuebreak数据类型的转换-date:0908111.基本数据类型可以相互转换(除boolean)2.可以将低精度的数据类型直接赋值给高精度的数据类型int i=1;short s=1;i=s;//可以自动进行转换3.当把高精度的数据类型赋值给低精度的数据类型时,必须强制类型转换。

ACCP6.0_S1_JAVA_第一章_学习笔记

ACCP6.0_S1_JAVA_第一章_学习笔记

第一章初识Java1.1 什么是程序程序一词来自生活,通常指完成某些事务的一种既定方式和过程。

在日常生活中,可以将程序看成对一系列动作的执行过程的描述。

对计算机所下达的每一个命令称为指令,它对应着计算机执行的一个基本动作。

告诉计算机按照某种顺序完成一系列指令,这一系列指令的集合称为程序。

计算机程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。

人与计算机对话使用计算机语言,这样人表达的想法,下达的指令计算机才能够明白。

计算机语言有很多种,它们都有自己的语法规则。

选用其中一种来描述程序,传达给计算机,Java就是多种语言中的一种。

计算机阅读程序,也就是阅读指令集,然后按部就班的严格执行。

编制程序时选用的语言是那种有利于人类读写的语言,俗称高级语言。

但是计算机仅仅明白0和1代码组成的低级语言(即二进制形式的机器语言程序),中间需要一个翻译官进行语言转换(对高级语言进行编译或者解释)。

1.2 为什么学习Java语言Java是Sun Microsystems于1995年推出的高级编程语言。

Java 领域的JavaSE、JavaEE技术已发展成为同C#和.NET平分天下的应用软件开发平台和技术。

Java技术可以应用在几乎所有类型规模的设备上,小到计算机芯片、蜂窝电话,大到超级计算机,无所不在。

1.3 Java可以做什么在计算机软件应用领域中,可以把Java应用分为两种典型类型。

●开发桌面应用程序:银行软件、商场结算软件。

●开发面向Internet的应用程序:网上数码商城、阿里巴巴、易趣网1.4 Java技术平台简介Java包括编程语言和相关的大量技术。

(1)JavaSE:JavaSE即Java平台标准版,是Java技术的核心,提供基础的Java开发工具,执行环境与应用程序接口(API),主要用于桌面程序的开发。

(2)JavaEE:JavaEE的全称是Java平台企业版,它主要用于网络程序和企业级应用的开发。

Java学习笔记(必看经典).pdf

Java学习笔记(必看经典).pdf
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。 实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚 )。 可复用性是 OOP 的基础。
比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。
关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a 为对象变量,Animal 是类名。 上面语句是判定 a 是否可以贴 Animal 标签。如果可以贴则返回 true,否则返回 false。
在上面的题目中: a instanceof Animal 返回 True, a instanceof Dog 也返回 True,
This 表示当前对象。
Public void printNum(){ Int number=40; System.out.println(this.number);
} 此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。
This.number 表示实例变量。 谁调用 this.number 那么谁即为当前(this)对象的 number 方法。
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法: public student(string name,int a){ } public student(int a,string name){ } 为两个不同的构造方法。 如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。 练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。 (编写一个程序验证对象的传递的值为地址) 注意下面这种形式: static void changename(student stu){stu.setName “LUCY”} 注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。

廖雪峰Java教程学习笔记(一)——Java程序基础

廖雪峰Java教程学习笔记(一)——Java程序基础

廖雪峰Java教程学习笔记(⼀)——Java程序基础(⼀)Java程序基本结构Java是⾯向对象的语⾔,⼀个程序的基本单位就是class。

在class内部,可定义若⼲⽅法。

类名要求:类名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼤写字母开头⽅法名要求:⽅法名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼩写字母开头(⼆)变量和数据类型在Java中,变量分为基本类型的变量和引⽤类型的变量。

例如:int x = 1; //定义了⼀个整型int类型的变量,名为x,初始值为1变量的⼀个特点是可以重新赋值,也可以赋值给其他变量。

值得注意的是,在第⼀次定义变量时需要指定变量类型,⽽第⼆次重新赋值时,该变量已经存在了,不⽤再指定变量类型。

基本数据类型整数类型:byte, short, int, long浮点数类型:float, double字符类型:char布尔类型:boolean计算机内存的最⼩存储单元是字节(byte),⼀个字节就是⼀个8位⼆进制数,即8个bit,字节的⼆进制表⽰范围为00000000~11111111,换算成⼆进制是0~255,换算成⼗六进制是00~ff。

Java基本数据类型占⽤的字节数类型byte short int long float double char字节 1 2 4 8 4 8 2定义基本数据类型时的注意事项整型最⾼位的bit表⽰符号位(0表⽰正数,1表⽰负数)long型的结尾需要加L(int l = 9000000000000000000L;)float型的结尾需要加f(float f = 3.14f;)char类型使⽤单引号‘ ’,且仅有⼀个字符,字符串使⽤双引号“ ”引⽤类型常量:定义变量的时候,如果加上final修饰符,这个变量就变成了常量。

常量名通常全部⼤写var关键字:省略变量类型可使⽤var关键字(三)整数运算Java的整数运算遵循四则运算规则,可以使⽤任意嵌套的⼩括号。

第一章-Java基础笔记

第一章-Java基础笔记

第⼀章-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;}}}。

(完整word版)Java学习笔记(必看经典)

(完整word版)Java学习笔记(必看经典)

诚信、创新、开放、合作JAVA的面向对象编程--------课堂笔记面向对象主要针对面向过程。

面向过程的基本单元是函数。

什么是对象:EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。

能够做什么(方法):告诉外界对象有那些功能。

后者以前者为基础。

大的对象的属性也可以是一个对象。

为什么要使用面向对象:首先,面向对象符合人类看待事物的一般规律。

对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。

方法的定义非常重要。

方法有参数,也可能有返回值。

注意区分:对象(本身)、对象的实现者、对象的调用者。

分析对象主要从方法开始。

我们通过类来看待对象,类是对象的抽象。

其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。

对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。

这样才能使每个对象本身做成最好的。

对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。

实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。

可复用性是OOP的基础。

比较面向过程的思想和面向对象的思想:面向过程的思想:由过程、步骤、函数组成,以过程为核心;面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。

面向过程是先有算法,后有数据结构。

面向对象是先有数据结构,然后再有算法。

在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。

开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。

从语法上来看,一个类是一个新的数据类型。

在面向对象编程中,除了简单数据类型,就是对象类型。

定义类的格式:class Student{代码}注意类名中单词的首字母大写。

实例变量:定义在类中但在任何方法之外。

(New出来的均有初值)局部变量:定义在方法之中的变量。

局部变量要先赋值,再进行运算,而实例变量均已经赋初值。

这是局部变量和实例变量的一大区别。

java完美经典读书笔记

java完美经典读书笔记

java完美经典读书笔记第一章概述第二章JAVA语言基础关键字:基本数据类型:bytehortintcharlongfloatdoubleboolean循环控制:dowhileforbreakcontinue分支控制:ifelewitchcaedefaultbreak方法变量和类得修饰府:privatepublicprotectedfinaltaticabtractynchronizedvolatiletrictf ptranient字面值常量:faletruenull方法相关得关键字:returnvoid包相关得关键字:packageimport异常处理:trycatchfinallythrowthrow对象相关:newe某tendimplementuperclaintanceofthi很多算术运算操作可以产生浮点型无法表达的数字,如无限大,无限小等,这些数据的表达通过浮点数封装类(Float和Double)所提供的特殊属性来表达。

Float.NaN非数字Float.NEGATIVE_INFINITY无限小Float.POSITIVE_INFINITY无限大Double.NaN非数字Double.NEGATIVE_INFINITY无限小Double.POSITIVE_INFINITY无限大数据类型的自动转换图:char--->{int-->long-->float-->doublebyte-->hort-->{内置类对应的基本类型:Byte-->byte;Short-->hort;Integer-->int;Long-->long;Float-->float;Double-->doubleBoolean-->boolean;Character-->char;String-->char[]将基本数据类型转为String类型:tringtr1;intintv1=300;tr1=String.valueOf(intv1);将tring类型转为基本数据类型:tringtr1="126";inti1=Integer.pareInt(tr1);取得tring对象内含的char[]值,必须使用它的toCharArray()方法来取得。

java面向对象学习笔记

java面向对象学习笔记

一、概述1、安装JDK2、配置Path路径3、第一个小程序:HelloWorld.javaJavac:用来编译Java:用来解释执行注:java是由一个一个类*.Java源文件命名要跟public修饰的类名一致4、最小的程序单位是类(class),所以java程序必须以类的形式存在。

不允许执行语句、变量、方法等成分的独立存在。

5、JA V A源文件的命名规则A、源文件的后缀名必须是.javaA.编译型:使用专门的编译器。

将程序源代码一次性翻译成B.主文件名必须大写字母开头,不能符号、数字。

C、Java源文件命名要跟public修饰的类名一致。

一个类里只能有一个public类。

注:一个Java的源文件可以包含多个类的定义。

但是只能有一个public类。

(原则上不推荐一个源文件写多个类,正确的方式为:一个源文件定义一个类,且名字要相同)。

6、Java的运行机制B、高级的程序语言按程序的执行方式分为:编译型和解释型。

特定平台(特定的操作系统)可以执行的机器码。

解释型:使用专门的解释器逐行解释成特定平台(特定的操作系统)的机器码并立即执行。

7、Java的两大核心机制JVM:Java虚拟机(Java Virtual Machine)实现了JA V A 一次编译,到处执行。

垃圾回收:不再使用的内存空间应立即回收,就叫垃圾回收。

显示回收的缺点:A、忘记回收,内存泄漏B、错误的回收程序的核心类库的内存,系统崩溃。

JA V A的回收机制:Java的内存分配和回收都是JRE(Java Runtime Environment)在后台自动进行的。

JRE 会负责回收不再使用的内存,这种机制就叫垃圾回收机制。

二、JAV A的基础语法1、Java的注释:说明某段代码的作用,。

*、可读性第一,效率第二。

2、注释的形式:单行注释://多行注释:/* */文档注释:如果编写JA V A源程序时添加了合适的文档注释。

然后通过JDK提供的javadoc 工具可以直接将源代码中的文档注释提取成一份系统的API文档。

Java基础笔记狂神说版

Java基础笔记狂神说版

Java基础笔记狂神说版Java基础学习笔记(狂神说版)三、Java⽅法(⼀)⽅法的重载1. 重载的概念:重载就是在⼀个类中,有相同的函数名称,形参不同的函数。

2. ⽅法重载的规则:(1)⽅法名必须相同(2)参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)(3)⽅法的返回类型可以相同,也可以不同(4)仅仅返回类型不同不⾜以成为⽅法的重载3. 实现理论:⽅法名称相同时,编译器会根据调⽤⽅法的参数个数,参数类型去逐个匹配,以选择对应的⽅法,如果匹配失败,则编译器报错(⼆)⽅法的可变参数可变参数(不定项参数):JDK1.5开始,Java⽀持传递同类型的可变参数给⼀个⽅法在⽅法声明中,在指定参数类型中加⼀个省略号(...)⼀个⽅法中只能指定⼀个可变参数,他必须是⽅法的最后⼀个参数,普通参数声明必须在其之前(三)⽅法的递归递归就是:A⽅法调⽤A⽅法!就是⾃⼰调⽤⾃⼰递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,⼤⼤减少了程序的代码量。

递归的能⼒在于⽤有限的语句定义对的⽆限集合。

递归结构包括两个部分:(1)递归头:什么时候不调⽤⾃⾝⽅法。

如果没有头,将陷⼊死循环。

(2)递归体:什么时候需要调⽤⾃⾝⽅法。

四、Java数组(⼀)数组的概念数组的定义:数组是相同类型数据的有序集合。

数组描述的是相同类型的若⼲个数据,按照⼀定的先后次序排列组合⽽成。

其中,每⼀个数据称作⼀个数组元素,每个数组元素可以通过⼀个下标来访问他们。

数组的四个基本特点:(1)其长度是确定的。

数组⼀旦被创建,它的⼤⼩就是不可以被改变的。

(2)其元素必须是相同类型,不允许出现混合类型。

(3)数组中的元素可以是任何数据类型,包括基本类型和引⽤类型。

(4)数组变量属引⽤类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。

数组本⾝就是对象,Java中对象是在堆中的,因此数组⽆论保存原始类型还是其他对象类型,数组对象本⾝是在堆中的。

java学习笔记(5)控制语句、键盘输入

java学习笔记(5)控制语句、键盘输入

java学习笔记(5)控制语句、键盘输⼊控制语句:java控制可以分为7种:*控制选择结构语句: *if if else *switch*控制循环结构语句: *for *while *do while*改变控制语句顺序: *break *continueif控制语句:/*关于java语⾔当中的if语句,属于选择结构,if语句⼜被称为分⽀语句/条件控制语句;1、if语句的运发结构:包含4中编写⽅式第⼀种:if(布尔表达式){java语句;...};第⼆种:if(布尔表达式){java语句;...}else{java语句;...}第三种:if(布尔表达式){java语句;...}else if(布尔表达式){java语句;...}...第四种:if(布尔表达式){java语句;...}else if(布尔表达式){java语句;...}else{java语句;...}重点:只要有⼀个if分⽀执⾏,整个if语句结束;注意:所有控制语句都是可以互相嵌套的。

注意:嵌套使⽤的时候,代码格式要保证完美。

注意:if语句中,只有⼀条java语句的话,⼤括号可以省略;if(true/false){java语句;}if(true/false) java语句;//但是不推荐使⽤,这种代码风格不好。

不容易看清。

*/public class ifTest01{public static void main(String[] args){// 需求,所在位置的5公⾥范围内有肯德基的话,去KFC吃午饭。

// 公⾥数double distance = 6.0;//单位KM// 判断语句if(distance<=5){System.out.println("⾛着去KFC吃午饭");}else if(distance<=7.0&&distance>5){System.out.println("跑着去KFC吃午饭");}else{System.out.println("在附近吃别的");}}}接收⽤户键盘输⼊:/*System.out.println() 负责向控制台输出,【从内存到控制台,输出的过程,这是从内存中出来了】接收⽤户键盘输⼊,从"键盘"到"内存"。

大一java知识点总结

大一java知识点总结

大一java知识点总结作为一门流行的编程语言,Java在计算机科学领域有着广泛的应用。

作为大一学生,学习Java编程语言是非常重要的一部分。

本文将总结大一学生需要掌握的Java知识点,包括基本概念、语法结构、面向对象编程和常用类库等内容。

1. 基本概念Java是一种简单、面向对象、分布式、多线程、动态、解释性的编程语言。

它是由Sun Microsystems公司于1995年推出的,主要用于开发跨平台的应用程序。

学习Java编程,首先要了解一些基本概念,包括:- Java程序的结构:一个Java程序通常由一个或多个类组成,每个类包含属性和方法。

程序必须包含一个包含main()方法的类,作为程序的入口。

- 编译和运行Java程序:Java源代码文件以.java为扩展名,需要通过编译器将其编译成字节码文件(.class),然后通过Java虚拟机(JVM)执行字节码文件。

- 数据类型:Java支持8种基本数据类型,包括整型、浮点型、字符型和布尔型,以及引用数据类型,如类、接口、数组等。

- 运算符和表达式:Java包含各种运算符,用于进行算术运算、逻辑运算、位运算等操作。

表达式是由运算符和操作数组成的。

2. 语法结构学习Java编程语言,需要掌握其基本语法结构,包括:- 变量和常量:在Java中,变量用于存储数据,常量用来表示不可变的值。

变量必须先声明,然后才能使用,而常量一经声明就不可修改。

- 控制流程语句:Java包含if语句、switch语句、for循环、while循环和do...while循环等控制流程语句,用于实现程序的流程控制。

- 方法和函数:方法是一组执行特定任务的语句的集合,可以通过调用方法来执行这些任务。

Java中的方法由返回类型、方法名和参数列表组成,可选地包含方法体。

- 异常处理:Java中的异常是一种在程序执行过程中可能引发的错误,通过try...catch块可以处理和捕获异常。

3. 面向对象编程Java是一种面向对象的编程语言,它支持类和对象的概念。

java语言学习笔记

java语言学习笔记

第一章1. java程序共分为两种:应用程序(application独立运行)和小应用程序(applet:嵌在网页中运行)。

第二章1.Java语言只含有两种数据类型字符(char)与短整形(short)之间没有强弱关系。

弱的数值类型可以直接转为强的数据类型。

强的数据类型要转换为弱的数值类型需强制转换。

Java一般不直接比较两个浮点数是否相等或不相等。

2.‘\u0061’, ‘\u0051’ 和‘\u005a’ 是char直接量.3. 字符(char)直接量(常用的转义字符)'\b' (退格)•'\f' (换页)•'\n' (换行)•'\r' (回车)•'\t' (水平制表符(到下一个tab位置))•'\' ' (单引号)•'\" ' (双引号)•'\\' (反斜杠)4. %:取模:返回余数,余数符号与被除数一致。

5.短路规则( &&和|| ):如果从第一个操作数可以推断出表达式结果,就不再计算第二个操作数;逻辑运算(&和| ):不采用短路规则第三章:面向对象程序设计1.对象(objects): 类的实例对象或类本身2.J_Circle c = new J_Circle(50,50,40);变量”c”获得该实例的引用。

3.构造方法:主要用来创建类的实例。

特点:1.方法名必须与类名相同;2.在声明时不能写上返回任何类型。

任何一个类都会有构造方法。

如果未显示地定义类的构造方法,则系统会为该类定义一个默认的构造方法:不含有任何参数,作用是将类中的成员域初始化。

4.三个基本特性:封装性、继承性和多态性4.1.1:java语言规定:任何一个子类的构造方法都必须调用父类的构造方法,而且调用父类的构造方法的语句必须在子类构造方法的第一语句,其格式为:super(参数);4.1.2:子类实例的引用可以直接赋给父类类型的引用变量。

java程序设计教程第二版笔记

java程序设计教程第二版笔记

java程序设计教程第二版笔记以下是一些可能的Java程序设计教程第二版的笔记内容:1. Java语言的特点:Java是一种面向对象的编程语言,具有简单性、可移植性、安全性等特点。

它支持多线程编程,可以方便地实现并发控制和多线程并发访问。

2. Java基础语法:Java的基础语法包括变量、数据类型、运算符、控制语句等。

其中,变量是存储数据的容器,数据类型用来指定变量的类型,运算符包括算术运算符、比较运算符等,控制语句包括if语句、for循环等。

3. 类和对象:类是对象的抽象,它定义了对象的属性和方法。

对象是类的实例,它是类的具体实现。

通过创建类的对象,可以方便地管理和操作数据。

4. 继承和多态:继承是面向对象编程中的一个重要概念,它可以让一个类继承另一个类的属性和方法。

多态是指一个接口可以有多种实现方式,可以让程序更加灵活和可扩展。

5. 异常处理:异常是程序中出现的错误或异常情况,它会导致程序中断或崩溃。

Java提供了异常处理机制,可以捕获和处理异常,保证程序的稳定性和可靠性。

6. 输入输出流:Java提供了输入输出流来读写数据,包括文件流、网络流等。

通过输入输出流,可以方便地读取和写入数据,实现数据交换和共享。

7. 多线程编程:Java支持多线程编程,可以实现并发控制和多线程并发访问。

通过线程池等技术,可以有效地管理线程资源,提高程序的性能和响应速度。

8. 网络编程:Java提供了丰富的网络编程API,可以实现基于TCP/IP协议的网络通信。

通过Socket编程,可以实现客户端和服务器的通信,实现分布式系统的构建。

9. GUI编程:Java提供了丰富的GUI编程API,可以实现图形用户界面。

通过Swing组件库,可以方便地构建各种界面元素,实现用户交互和界面美化。

java知识点总结

java知识点总结

java知识点总结Java是一种跨平台的编程语言,广泛应用于软件开发领域。

作为一名Java开发者,了解并熟悉Java的各种知识点是非常重要的。

以下是对Java常见知识点的一个总结,希望能对你有所帮助。

一、语法基础1. 数据类型:Java的数据类型分为基本数据类型和引用数据类型。

2. 变量和常量:在Java中,使用关键字"var"来定义变量,使用关键字"final"来定义常量。

3. 运算符:Java支持一系列的运算符,如算术运算符、关系运算符、逻辑运算符等。

4. 控制流程:Java可以使用if语句、for循环、while循环等来控制程序的流程。

二、面向对象编程1. 类和对象:Java是面向对象编程语言,每个Java程序都是由类组成,通过创建对象来使用类。

2. 继承和多态:Java支持类的继承和多态特性,通过继承可以实现代码的复用,通过多态可以实现代码的灵活性。

3. 封装和抽象:Java提供了封装和抽象的机制,使得程序的设计更加灵活和易于维护。

4. 接口和内部类:Java支持接口和内部类的特性,通过接口可以定义一组规范,而内部类则可以提供更好的封装性。

三、异常处理1. 异常的分类:Java将异常分为可检查异常和不可检查异常,通过使用try-catch语句可以捕捉和处理异常。

2. 自定义异常:Java允许用户自定义异常类,通过继承Throwable类可以实现自定义异常。

四、集合框架1. List、Set和Map:Java中的集合框架提供了List、Set和Map等接口,分别用于存储有序的元素、无序的元素和键值对。

2. 集合的遍历和操作:Java中提供了一系列的方法用于对集合进行遍历和操作,如foreach循环、迭代器等。

五、输入输出1. 文件操作:Java提供了一系列的API用于文件的读写操作,如File类、BufferedReader类等。

2. 序列化和反序列化:Java中的对象可以通过序列化和反序列化进行存储和传输。

Java学习笔记01

Java学习笔记01

JavaIO操作文件的读写获得资源文件的键值对获得键盘输入Scanner scanner=new Scanner(System.in);String input=scanner.next();System.out.println("input:"+input);public static String getString()throws IOException{InputStreamReader isr=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(isr);String s=br.readLine();return s;}Scanner有一个很有用的方法就是:next()用法如下:泛型的使用StringBuilderreplace(int start,int end,String str):用str替换StringBuilder中指定位置的字符insertdelete运行结果:是错误的!deleteCharAtStringConversion 双引号的添加和转义单引号的添加和转义请参阅com.kingbase.tools.string.SQLIdentifierjava正则表达式运行结果是:public class RegularExpr{public static void main(String[]args) {String test="huangweih";//""if(test.matches("(h)uang.*\\1$")){ System.out.println("true");}}}String test="huangweihuang";//""if(test.matches("^(.*).*\\1$")){ System.out.println("true");}运行结果是真public static void main(String[]args){String str="[KingbaseES Server]ERROR:列\"FSDF\"不存在ALTER TABLE\"PUBLIC\".\"A\"ALTER COLUMN AAA SET DEFAULT FSDF;";if(str.matches(".*列.*(.+)\".*不存在.*SET.*DEFAULT.*\\1.*")){ System.out.println("true");}运行结果是真忽略大小写Pattern pattern=pile(patternStr, Pattern.CASE_INSENSITIVE);Pattern.CASE_INSENSITIVE也表示忽略大小写。

Java达内学习笔记3

Java达内学习笔记3

内存分类:栈内存、堆内存、寄存器、方法构造(代码段)、池内存栈内存:地址、基本内存的值(栈内存很小,不放对象)堆内存:对象、地址、基本内存的值、寄存器:运算的中间值代码段:如构造方法等的代码池内存:长放在内存里面的东西放在池内存里面(常驻内存)Staff staff = new Staff () ;执行次序:①Staff staff现在栈里面图1-1public class Test {public static void main(String[] args) {Staff staff = new Staff();staff.id="007";="詹姆斯.邦德";staff.salary=10000.0F;staff.faSalary();}}public class Staff {String id;String name;float salary;public void faSalary(){System.out.println(salary);}}编译:javac -d . Hello.java运行:Java com.tenara.Helloimport语句可以导入不同包的class文虚拟机先找栈,通过栈找到堆!垃圾回收机制回收的主要是堆内存里面的东西。

GC是怎么判断堆内存里面的东西已经成为垃圾可以被回收了?GC是从栈找到堆,如果堆里面的内容在栈里面没有对应的地址变元,则被视为垃圾清理掉!import java.util.Scanner; //扫描键盘public class Test2 {public static void main(String [] args){Scanner sc = new Scanner(System.in);//扫描字符串String str=sc.next();System.out.println("输入了"+str);//扫描整数int aa=sc.nextInt();System.out.println("输入了"+aa);//扫描doubledouble dd=sc.nextDouble();System.out.println("输入了"+dd);}}Operators1、"( )"优先级高2、"="优先级低Assignment operators= += -= %= *= /= <<= >>= >>>=&= ^= |=public class Test6 {public static void main(String [] arsg){byte b1=2;byte b2=3;b1=(byte)(b1+b2); // 语句1 加法,转intb1+=b2; //语句2 赋值,不转int}}b1+=b2;是否和语句b1=b1+b2完全等价?答案是否定的,上面程序中的语句1和语句2给出了证明。

java guide 自己的笔记

java guide 自己的笔记

java guide 自己的笔记这只是一个基本的大纲,涵盖了Java编程的一些核心概念。

**Java编程指南笔记****1. 基础语法*** **变量与数据类型**: 基本的数据类型(如int, double, char等)和变量的声明与初始化。

* **运算符**: 基本的算术运算符(如+,-,*,/),比较运算符和逻辑运算符。

* **控制结构**: if-else语句,switch语句,循环(for,while)。

* **函数/方法**: 函数的定义,参数传递(按值传递和按引用传递),返回值。

**2. 面向对象编程*** **类与对象**: 类的定义,对象的创建。

* **封装**: 属性和方法的封装。

* **继承**: 类的继承,继承的方法和属性。

* **多态**: 方法的重载和方法的重写。

* **抽象类与接口**: 抽象类的定义,接口的定义和实现。

**3. 异常处理*** **异常的分类**: Checked异常和Unchecked异常。

* **try-catch块**: 异常的捕获和处理。

* **finally块**: 无论是否发生异常都会执行的代码块。

* **throw与throws关键字**: 抛出异常和声明可能抛出的异常。

**4. 集合框架*** **数组**: 数组的定义与使用。

* **List, Set, Map**: 常用集合接口及其实现类(如ArrayList, HashSet, HashMap)。

* **泛型**: 集合中的元素可以有相同的类型。

* **迭代器**: 遍历集合的方法。

**5. 多线程编程*** **线程的生命周期**: 新建线程,启动线程,等待线程,唤醒线程,终止线程。

* **线程同步**: 防止多个线程同时访问某一共享资源造成的数据不一致。

* **线程间通信**: 使用wait()和notify()方法实现线程间通信。

**6. 网络编程*** **Socket编程**: 建立Socket连接,发送和接收数据。

java从入门到精通读书笔记(一)

java从入门到精通读书笔记(一)

java从入门到精通读书笔记(一)Java从入门到精通笔记入门篇•熟悉Java发展历史•安装JDK、Eclipse•编写Hello World程序•了解Java基本语法•掌握变量、数据类型、运算符、控制语句面向对象编程•了解面向对象的特点•掌握类和对象的概念•学习继承、封装、多态等基本概念•实现类的定义和对象的创建•学习重载和重写集合和IO•学习Java中的容器类•掌握ArrayList、HashSet、HashMap等集合的使用•熟悉Java中的IO操作•了解文件操作、序列化等内容网络编程•掌握socket通信•理解TCP/IP协议•学习HTTP协议•实现客户端和服务器高级Java特性•学习反射、注解等高级特性•掌握多线程编程•熟悉JVM架构•学习异常处理JavaWeb编程•掌握Servlet、JSP等技术•学习MVC框架•熟悉Web应用服务器•学习数据库编程总结•学习Java需要不断积累•遇到问题可以通过搜索引擎解决•不断实践,多写代码•持续学习新技术,保持竞争力入门篇Java语言是面向对象的编程语言,是一种广泛使用的计算机编程语言。

Java语言从1996年开始被发布,现在已被广泛应用于客户端和服务器端程序的开发。

在学习Java之前,需要先了解Java的发展历史。

安装JDK、EclipseJava的开发需要安装JDK和Eclipse。

JDK是Java开发工具包,其中包含了Java编译器等工具。

Eclipse是一款常用的Java IDE(集成开发环境),可以用于编写,调试和运行Java代码。

编写Hello World程序在学习Java语言之前,需要先学会编写Hello World程序,这是一个非常简单的程序,可以帮助初学者快速上手Java编程。

public class HelloWorld {public static void main(String[] args){System.out.println("Hello World!");}}了解Java基本语法Java是一种强类型的语言,需要对数据类型进行明确的定义。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java第一天2007年4月23日1、Java之父Golsling1995年5月23日Java诞生1998年12月 1.2版本Java2J2SE J2EE J2ME2004年12月 1.5版本(5.0)Java JavaSE JavaEE JavaME2、Java SE---Java标准平台Java EE---企业级平台Java ME---微小平台,用在资源受限的平台上3、(1)跨平台---一次编译,到处运行(2)简单---简化C++,取消了指针,对指针进行了上层的封装,它保证能够通过这个指针(引用),来访问有效的内存单元。

不允许多继承,使继承关系成树装图,每个类都只能由一个父类。

java语言的开发效率高,但执行效率低。

(相当于c++的55%)(3)纯面向对象的语言---都要放在类中(4)垃圾回收机制---自动垃圾收集,永远不会出现内存泄露的问题4、虚拟机java语言是先编译后解释,java源码是通过编译生成一种特殊的.class的中间字节码文件,然后再由JVM进行解释运行。

(编译)(解释).java---->.class--->可执行文件所以效率低,是C++的20倍5、java源代码中的main方法的定义写法。

main方法是程序的入口。

public class Hello{//一个源文件中只能有一个公开类,而且源文件的文件名与公开类的类名完全一致public static void main(String[]args){//程序入口public static可以调换顺序System.out.println("He llo world");//打印语句}}编译命令javac xxxx.java源文件的名字,源文件中的一个类会对应编译生成一个.class 文件运行命令java xxxx类的名字---启动虚拟机6、环境变量JAVA_HOME=/opt/jdk1.5.06JDK安装路径---JDK=JRE{JVM(硬件)+编译器(软件)}+编译器工具+类库PATH=$Path:$Java_Home/bin:.ClassPath=.类路径7、包---分类放置,减少命名空间包名.类名表示一个类的全限定名java xxx.xxx.ClassA---运行时要在包结构的上一层目录来运行。

javac-d.xxxx.java---编译的时候,按照包结构存放字节码文件,此命令生成的.class 文件在当前目录package xxx.xxx,包的定义在一个程序中只能由一个import xxx.xxx.xxx.ClassA;---在程序中声明ClassA类,使用的时候不需加包名,使用同一包内的类时,不用引入import p1.p2.p3.p4.p5.*;---声明p5包中所有的类,不能代表其子包系统会在每个java程序中隐含导入了ng这个包8、java中的注释,单行注释//......多行注释/*.......*/文档注释/**........<p>(换行标签)*/,用javadoc命令可以根据原码中的文档注释生成注释文档(html格式)。

文档注释中可以使用html标签。

javadoc-d路径(指定注释文档的保存路径)xxx.java文档注释一般写在类定义之前,方法之前,属性之前。

在文档注释中可以用@author表示程序的作者,@version表示程序的版本,前两个注释符号要写在类定义之前,用于方法的注释@param对参数进行注释,@return对返回值进行注释@throws对抛出异常的注释。

10、标识符规则---类,方法,变量,同时也是包名的规范由字母(汉语中的一个汉字是一个字母),数字,下划线和货币符号组成,不能以数字开头。

大小写敏感没有长度限制,不能有空格不能使用Java的关键字和保留字java中的关键字goto和const在java中虽然不再使用但是还作为保留字存在java中没有sizeof这个关键字了,java中的boolean类型的值只能用true和false,且这两个也是关键字enum枚举assert断言一个标识符尽量符合语义信息,提高程序可读性类名:每个单词首字母大写,变量和方法:第一个单词小写,后边的每个单词首字母大写包名:全部小写常量:全部大写11、局部变量:定义在方法中的变量(1)先赋值后使用(2)从定义变量的代码块开始到代码块结束(3)在同一范围内不允许两个局部变量发生命名冲突Java第二天2007年4月24日1、Java的数据类型(1)简单类型---8种有符号的数据类型a)整型byte1字节8位-128到127short2字节16位-2^15到2^15-1-32768到32767int4字节32位-2^31到2^31-1-2147483648到2147483647整型值存放,正数存放原码(二进制码),负数则存放补码(原码按位取反末位加一)。

long8字节64位-2^63到2^63-1long a=40000l;//在数字的结尾加“l”,表示long类型的字面值b)浮点类型float4字节32位float a=1.3f;double8字节64位double a=1.3;double和long比较,double表示的数值要大,因为有科学计数法float a=1.3;//error会造成精度丢失,强转float a=(float)1.3;或者float a=1.3f;c)字符类型char2字节16位d)布尔型boolean false/true//Java中false与0不能转换自动类型提升:a运算符ba和b中有一个是double,结果就是doublea和b中有一个是float,结果就是floata和b中有一个是long,结果就是long除以上之外的情况,结果都是intchar是无符号的16位整数,字面值必须用单引号括起来;‘a’String是类,一个String的字符串是一个对象,非原始数据类型;在字符串中使用"+",表示字符串的连接,系统重载了这个运算符char类型也可以用通用转译字符,但是不能用ASCII码。

可以用“\u0000”(十六进制)这种格式,因为char型中使用的是unicode编码方式。

char c1='a';char c2=97;char c3='\u0061';//一个字节用2个十六进制的数字表示整数除0有异常,double除0没有异常(2)对象类型2、java中的运算符(java的运算符的优先级和结合性和c++相同)***System.out.println(3/2)按整型计算得1***byte a=1;a=a+2;//不合法,自动类型提升,赋值丢失精度a+=2;//不会发生自动类型提升的,合法a++;//不会发生自动类型提升的1)>>=前面是零补零,前面是一补一;右移一位比除以2效率高2)>>>=无符号右移(强制右移都会移进零),>>=和>>>=对于负数不一样正数:右移n位等于除以2的n次方负数:变成正数。

3)&&短路与,前面为假,表达式为假,后面的操作不会进行,&非短路运算符,会对所有条件进行判断。

例:int a=4;if(a<3&(b=a)==0)b赋值if(a<3&&(b=a)==0)b不赋值4)||短路或,前面为真,表达式为真,后面的操作不会进行,|会对所有条件进行判断。

5)instanceof,是用于判断一个对象是否属于某个类型6)java中的求余运算符“%”可以对两个实型变量求余5%2=13、流程控制(1)控制流if()if()….elseif()…..else if()….else注意:else只是和其上面的同层的最近的if()来配对。

(2)switch(s){case'a':……..case1:……break;default:…………}注意:switch()内数据类型为byte short char int类型,只有以上四种类型的才可以在switch()中使用。

case块中不加break时顺序执行下面的语句。

4、循环语句for(int i=0;i<n;i++){}----确定循环while(){}----循环0或多次do{}while();-----------注意加分号循环1或多次5、语法在main方法中要使用全局变量或调用其他方法时,要求全局变量和方法要有static修饰命令行参数java Class a bargs[0]=aargs[0]=b字符串转成int类型int i=Integer.parseInt(a);6、数组内存中的连续空间数组是一次性定义多个相同类型的变量Java中一个数组就是一个对象,有属性,没有方法int[]a;//定义一个数组,变量名就是指向数组首地址的指针a=new int[10];//为数组分配空间a.length;//得到数组的长度数组创建后有初始值:数字类型为0布尔类型为false引用类型为nullString[]默认值null初始化、创建、和声明在同一时间int[]i={0,1};//显示初始化int[]i=new int[]{0,1};//注意:这样显示的初始化的时候,new int[]中括号中必须是空的,不能填数字Car[]c={new Car(),new Car()};数组拷贝System.arrayCopy(Object src,int srcPos,Object dest,int destPos,int length);src源数组,srcPos从第几位开始拷贝(数组下标,从0开始),dest目标数组,destPos 目标数组放置的起始位置,length,表示要拷贝的长度。

拷贝一个数组到另一个数组。

多维数组1)有效定义int[][]i1=new int[2][3];(同时给定一维,二维的空间)int[][]i2=new int[2][];(给定一维的空间,二维空间待定,不规则的二维数组)i2[0]=new int[2],i2[1]=new int[3];*C++中int[][]=new int[][3];有效2)无效定义int[][]i1=new int[][3];3)数组长度------------数组的属性length(在二维数组中这个属性只代表第一维的长度)int[]i=new int[5];int len=i.length;//len=5;Student[][]st=new Student[4][6];len=st.length;//len=4;len=st[0].length;//len=6;练习:(1)数组元素的偏移在使用数组的时候,通常使用一个辅助变量纪录数组中的有效元素的个数,还表示下一个可插入位置的下标(2)数组元素的轮换偶数个球队足球比赛,每个队和每个队有且只有一场比赛把数字按"U"字型摆放,左边最上边的数字不变,其他数字按逆时针旋转(3)有一个奇阶的方阵,填如数字,使得第一个数一定放在第一行的最中间,第二个放在右上方,行越界,放在此列的另一侧,列越界放在此行的另一侧行列都越界的时候,退回来,放在原来的数字下边,当要放入的地方有数字的时候,退回来,放在原来的数字下边(1)public class ArrayInsertDelete{static int[]a={1,2,3,4,5,6};static int index=6;static void insert(int pos,int value){if(index==a.length)expand();for(int i=index;i>pos;i--){a[i]=a[i-1];}a[pos]=value;index++;}static void delete(int pos){index--;for(int i=pos;i<index;i++){a[i]=a[i+1];}}static void expand(){int[]b=new int[a.length*2];System.arraycopy(a,0,b,0,a.length);a=b;}static void print(){for(int i=0;i<index;i++){System.out.print(a[i]+"\t");}System.out.println();}public static void main(String[]args){print();insert(2,7);//{1,2,7,3,4,5,6}print();delete(4);//{1,2,7,3,5,6}print();}}Java第三天2007年4月25日1、面向对象的思想anything is an Object(万物皆对象)符合人们客观看待世界的规律2、抽象,从对具体的对象中抽取有用信息。

相关文档
最新文档