已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java笔记:JDK安装:JDK环境变量的配置:Administrator的用户变量:path = JDKbin;需要删除 windowssystem32关于JAVA的文件,以免后期影响到java的编译运行 Java基本数据类型:Bit意为位或比特,是计算机运算的基础; Byte意为字节,是计算机文件大小的基本计算单位; 1byte=8bits,两者换算是1:8的关系。 一个汉字两个字节, 所以16bit1个汉字.public static void function2()/内存的容量从小到大/1字节 = 8bit(位)/整数/字节数:byte a = 100; /1字节/短整数:short b = 1000;/2字节/整数:int c = 10000;/4字节/长整数:long d = 1000000L; /需要加L /8字节/浮点数/单精度浮点数:float e = 10000.0F; /需要加F /4字节/双精度浮点数:double f = 100000.00; /默认 /8字节/字符数:char g = 张;/值用单引号括起来 /2字节 一个汉字等于两个字节,数字,字母一个字节/最常用的数据类型String(字符串),value(值)需要用双引号括起来()String name = 张三;String value = name +基础班;System.out.println(value); /结果等于:张三基础班自动类型转换:public static void function3()/ 自动类型转换/byte short char int long float doublebyte a= 100;int b = a;/这里是把a的值赋给b,类型被提升为int型int x=b; /这里是把a的值赋给x;/System.out.println(b);System.out.println(x);int c= 100;byte d = (byte)c; /需要强制类型转换,int类型需要强制转换为byte/System.out.println(d);short e = 1000;int f =10000;e = (short)f; /e被重新赋值,把f的值赋给e/System.out.println(e);int h = 50;String name = 100+h;/h的值被转换成Sting(字符串)类型,+现在为字符串连接符/相当于 name = 100+50 等于10050System.out.println(name = +name);求余数(取模)%左边小于右边,结果是左边左边等于右边,结果是零结果正负数只看被模数(左边)2%5 = 2;4%5 =4;5%5 =0;5%1 = 0; /右边是1,结果是零-2%5 = -2;-7%5=-2-10%3 = -10/0 = 编译报错0.0/0.0 = NAN NAN!=NAN (NAN永远不等于NAN)前缀的递增(+result和后缀的递增(result+)的区别int j = 1;/j = j+; /整个表达式的值为自增前的值 j = 1 j = +j;/整个表达式的值为自增后的值 j = 2/自增代码int i = 5;i+;System.out.println(i= + i);/ 6+i;System.out.println(i= + i);/ 7/ =int a = +i;System.out.println(a= + a);/ 8System.out.println(i= + i);/ 8int b = i+;System.out.println(b= + b);/ 8System.out.println(i= + i);/ 9short s = 3; s = s + 2; 与s += 2;有什么区别,为什么?s = s + 2;需要强制类型转换,s += 2含有隐式转换。进制的概念:二进制: 0b或0B开头,如:int a = 0B110; 表示形式:0,1八进制整数:开头,如 int a = 012;表示形式:0,1,2,3,4,5,6,7十进制整数:如:int a = 17;表示形式:0,1,2,3,4,5,6,7,8,9十六进制整数:要求0X或0x开头,如int a = 0x12;表示形式:09,AF位运算符:参见PPT附件:(0为假,1为真)按位与: &0&0=00&1=01&0=01&1=1按位或 |0&0=00&1=11&0=11&1=1异或:0&0=00&1=11&0=11&1=00 0 0 0 0 0 0 0_0 0 0 0 0 0 0 0 32 16 8 4 2 1 2的n次方计算左移运算符:右移运算符:无符号右移运算符:三目运算符:求上一页,下一页,总页数参见PPT控制循环结构语句break continuepublic static void function10()loop:for(int i = 0;i10;i+)for (int j = 0;j10 ;j+ )System.out.print(j+ );continue loop;System.out.println();打印结果为零,打印次数:10次数组:书写格式:静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;格式:数组名 = new 数组类型元素1,元素2,元素3.元素n;简化语法:数组名 = 元素1,元素2,元素3.元素n;/必须连在一起,分开不可用。动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;格式:数组名 = new 数组类型数组长度;int a = 1,2,3,4,5;/正常int arr;arr = 1,2,3,4,5;/报错,简写格式必须连在一起new arr1,2,3,4,5,;/正常打印数组形式为:【1,2,3,4,5】public static void function()int arr = 6,7,8,9,10;int x = 0;System.out.print();for( int y : arr)if(x!= arr.length-1)System.out.print(y+, );elseSystem.out.print(y+);x+;public static void printArray(int arr)System.out.print();for(int x=0; xarr.length; x+)if(x!=arr.length-1)System.out.print(arrx+, );elseSystem.out.println(arrx+);/说明:不断给String赋值public static void print(int arr)String s = ;for(int i=0; iarr.length;i+)s += arri;if(i != arr.length - 1)s += ,;s += ;System.out.println(s);【字符型数组打印】public static void function4()char ch = a,b,c,中;System.out.println(ch);结果:abc中【打印二维数组】/ 普通for循环public static void function5()int s1 = new int1,2,3,4,5,6,7,8,9,10;for(int x : s1)for(int y : x)System.out.print(y + );System.out.println();/高级for循环public static void function6()int s1 = new int1,2,3,4,5,6,7,8,9,10;for(int x = 0 ;xs1.length;x+)for(int y = 0;ys1x.length;y+)/s1x.length每个一维数组的长度System.out.print(s1xy+ );System.out.println();【获取数组中的最大值】/最大值public static void function3(int arr)int max = arr0;for(int x = 0;xarr.length;x+)if(maxarrxmax = arrx;System.out.println(max= +max);【数组排序】/第一种方式 冒泡排序法public static void function(int arr)for(int x = 0;xarr.length-1;x+)for(int y = 0;yarry+1)int temp = arry;arry=arry+1;arry+1=temp;swap(arr); /第二种方式 选择排序法public static void function2(int arr)/10,85,46,90,26,46,77,1,7,30;for(int x =0;xarr.length-1;x+)for(int y =x;yarry)/*int temp = arrx;arrx = arry;arry = temp;*/Function4(arr,x,y)/调用【数组进行值交换】方法swap(arr);/【数组进行值交换】public static void function4(int arr,int a,int b)/需要传递三个参数int temp = arra;arra = arrb;arrb = temp;public static void swap(int arr)for(int x : arr)System.out.print(x+ );【求数组的最大最小值】public static void function3(int arr)int max = arr0;for(int x = 0;xarr.length;x+)if(maxarrmid)min=mid+1;else if(keymax)/如果最小值都大于最大值,说明该数不存在,结束循环,返回-1return -1;mid=(min+max)/2;return mid;/返回中间值角标/方式二:public static int halfSearch_2(int key)int arr = 7,9,12,33,47,62,81,89,97;int min = 0;int max = arr.length-1;int mid = (min+max)1;while(minmax) /只要最小值不大于最大值,就循环if(arrmidkey)max = mid-1;elsereturn mid;/中间值不小于也不大于key,说明找到该值mid = (min+max)1;return -1;/最小值大于最大值,结束循环,返回-1【可变参数】定义格式: 返回值类型 方法名(参数类型 . 形式参数)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数注意:1.必须放在参数列表的最后面;2.只能出现在参数的最后;3.可变参数可以不写参数进行调用;4.位于变量类型和变量名之间,前后有无空格都可以;function8(hello,1,2,3,4,5,6,7,8,9,10);function(“hello”);/可以不写参数进行调用public static void function8(String x ,int .y)int sum = 0;for(int i= 0;iy.length;i+)sum+=yi;int arrx = 1,2,3,4,5,6,7,8,9,10;function9(arrx);/-int arrx = 1,2,3,4,5,6,7,8,9,10;function9(arrx);public static void function9(int .y)for(int x : y)/补充代码? /获取随机数 public int pRandom() int a = Math.abs(new Random().nextInt(100); prt(a); return a; /高级FOR循环获取二维数组 public void function()int arr2 = 4, 3 , 1, 2 ;for(int arr : arr2)for(int x : arr)prt(x);【面向对象的概述】面向对象:三个特征:封装,继承,多态。以后开发:其实就是找对象使用。没有对象,就创建一个对象。类和对象的关系:现实生活中的对象:张三 李四。想要描述:提取对象中共性内容。对具体的抽象。描述时:这些对象的共性有:姓名,年龄,性别,学习java功能。映射到java中,描述就是class定义的类。具体对象就是对应java在堆内存中用new建立实体。类就是:对现实生活中事物的描述。对象:就是这类事物,实实在在存在个体。【成员变量和局部变量】(变量和方法)作用范围:成员变量作用于整个类中。局部变量变量作用于函数中,或者语句中。在内存中的位置:成员变量:在堆内存中,因为对象的存在,才在内存中存在。局部变量:存在栈内存中,对象调用方法,进栈,执行完,出栈。类变量(对象)存储在栈内存中。类的成员分类成员变量和成员方法局部变量必须赋初值才能使用,可以在声明时赋值,也可以在构造方法中赋值Static(类变量和类方法)被Static的成员,称为类变量和类方法。 方法中的变量不允许存在static修饰符【面向对象通过代码体现】/老张开车去东北,这句话通过代码体现如下:class Demo1 public static void main(String args) System.out.println(Hello JAVA!);Person lz = new Person(); = 老张;Car car = new Car();car.bland = 跑车;lz.drive(car);class PersonString name;void drive(Car car)/开车 调用车跑的行为car.run(name);class CarString bland;void run(String name)System.out.println(name + 开了一辆 + bland + 在飞奔。); 示例二:学生是一个类,学生这个类有一个字段叫名字,有一个方法是交学费。每一个学生都是通过学生这个类new出来的一个对象。我现在创建一个数组,这个数组里面依次放的是没有交学费的学生的对象,我再分别调用数组里的这些学生的交学费方法。1 有一个学生类( 字段:名字 ; 方法:交学费 )2 通过这个类创建 学生对象(10个)3 把没有交学费的学生放在一个数组中去4 遍历数组,取出每一个学生对象,然后调用对象的交学费的方法5 用一个字段状态,来表示是否交学费 boolean isFree;class Demo2 public static void main(String args) Student stu = new Student10;for(int x = 0;xstu.length;x+)/第一种调用方式stux= new Student(); = zhangsan+x;stux.free();/第二种调用方式/*Student p = new Student();stux = p; = zhangsan+x;p.free();*/第三种调用方式/*Student1 s = new Student(); =张三+1;p.free();stux= s;*/for(int x = 0;xJar tf hello.jar C:2.txt要运行或调用jar包的文件,需要设置classpath环境变量Set classpath=jar路径jar包名Set classpath=C:mypacagehello.jar【方法参数的传递】基本数据类型作为方法参数时,参数传递的是变量值,而不是变量的地址值,因此,调用的方法中改变值,不会影响到原来的值。String类型作为参数是,跟基本类型作为参数传递的概念一致.复合类型作为方法参数传递时,参数传递的是对象的地址值,因此,对参数的改变会影响到原来参数的值。在同一个对象中,如果参数传递的是:数组、类、接口,在调用方法中改变传递参数的值,会影响到原来参数的值。参数传递的是类的对象,方法中接收该对象并用该对象,进行成员变量进行值的改变,不会影响到原来变量的值,除该变量为static修饰.对象初始化过程Person p = new Person(zhangsan,20);该句话都做了什么事情?1,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中。2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。3,在堆内存中开辟空间,分配内存地址。4,在堆内存中建立对象的特有属性。并进行默认初始化。5,对属性进行显示初始化。6,对对象进行构造代码块初始化。7,对对象进行对应的构造函数初始化。8,将内存地址付给栈内存中的p变量。非当前路径下的.class文件运行设置运行的类未和java文件在一起,要运行该类文件,可以设置:set classpath=.;c:xxx.java,加载虚拟机查找路径。比如定义了一个功能类,未和java执行文件在一起。Java帮助文档制作执行格式:Javadoc 选项软件包名称源文件filejavadoc -d myhelp -author -version ArrayTool.java-d:路径-author :作者-version :版本把类生成帮助文档,该类必须要public/protect修饰才行,权限不够,不能执行成功。【方法重载】重载是在同一个类中,需注意以下几点:注意:重载只看【方法名相同,参数类型个数顺序上是否不同.】1、必须不同参数列表;(参数顺序或者个数上有所不同)2、可以改变返回类型;3、可以改变访问修饰符;4、可以声明新的或更广泛的异常;【方法继承】子类继承父类时,子类就有机会重写父类提供的方法(final方法除外),重写要注意:1、参数列表一致;2、返回类型一致或子类;(父类中有多个子类,可以返回父类中的子类)3、访问权限大于或等于父类。4、重写方法不能抛出新的检查异常或者更广泛的异常;注意:不能重写final,static的方法重写就是真正实现一个继承的方法。子类只能有一个父类。如果省略了extends,子类的父类是Object内部类:内部类同一个内部类中多个成员内部类,访问规则,这样访问无任何意义内部类可分为:1.静态内部类(static修饰)2.成员内部类(作为外部类的一个成员存在,与外部类的属性、方法并列)3.本地内部4匿名内部类内部类的访问规则:1,内部类可以直接访问外部类中的成员,包括私有。之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式 外部类名.this2,外部类要访问内部类,必须建立内部类对象。访问格式:1,当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中。可以直接建立内部类对象。格式外部类名.内部类名 变量名 = 外部类对象.内部类对象;Outer.Inner in = new Outer().new Inner();2,当内部类在成员位置上,就可以被成员修饰符所修饰。比如,private:将内部类在外部类中进行封装。static:内部类就具备static的特性。当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限。在外部其他类中,如何直接访问static内部类的非静态成员呢?new Outer.Inner().function();在外部其他类中,如何直接访问static内部类的静态成员呢?uter.Inner.function();注意:当内部类中定义了静态成员,该内部类必须是static的。 当外部类中的静态方法访问内部类时,内部类也必须是static的。当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事务在使用外部事物的内容。/*内部类定义在局部时,1,不可以被成员修饰符修饰2,可以直接访问外部类中的成员,因为还持有外部类中的引用。但是不可以访问它所在的局部中的变量。只能访问被final修饰的局部变量。*/*匿名内部类:1,匿名内部类其实就是内部类的简写格式。2,定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。3,匿名内部类的格式: new 父类或者接口()定义子类的内容4,其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。5,匿名内部类中定义的方法最好不要超过3个。*/成员内部类例子:public class Demopublic static void main(String args) /*/外部类访问访问非静态内部类创建对象Outer.Inner a = new Outer().new Inner();a.function();*/*/外部类访问静态内部类创建对象Outer.Inner i =new Outer.Inner();i.function();i.staticFunction();*/*/外部类直接访问静态内部类访问非静态成员/外部类直接静态内部类访问静态成员new Outer.Inner().function(); Outer.Inner.staticFunction(); */该类可以用类的成员修饰符修饰:public、static、private等class Outer static class Inner public void function()System.out.println(Test_java);/内部类方法为静态,该内部类必须为静态方法public static void staticFunction()System.out.println(staticFunction);局部内部类例子:public class Outerprivate static int i =105;private int j=10;private int k=20;private int out_i=11;public void f(final int k)final int s = 200;class Innerint i=100;void function()System.out.println(k);/可以访问外部类的局部变量(即方法内的变量),但是变量必须是final修饰System.out.println(s); System.out.println(i);System.out.println(this.i); new Inner().function();public static void main(String args)Outer out = new Outer();out.f(3);/f方法形参为final类型,k不在对象中,标准的局部变量,当out.f(3)运行时,k进栈,运行完毕后出栈,然后在运行out.f(4)out.f(4);匿名内部类一abstract class AbsDemoabstract void show();class Outerint x = 3;/*class Inner extends AbsDemoint num = 90;void show()System.out.println(show :+num);void abc()System.out.println(hehe);*/public void function()/AbsDemo a = new Inner();/Inner in = new Inner();/in.show();/in.abc();AbsDemo d = new AbsDemo()int num = 9;void show()System.out.println(num=+num);void abc()System.out.println(haha);d.show();/d.abc();/编译失败;class InnerClassDemo4 public static void main(String args) new Outer().function();interface Intervoi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收割操作技能培训创新创业项目商业计划书
- 康复医疗器械体验中心创新创业项目商业计划书
- (面试)国家公务员考试试题与参考答案(2025年)
- 零售行业绿色创新案例政策解读考核试卷
- 2025年基因编辑的转基因作物安全
- 小学数学新人教版三年级上册一 观察物体第1课时 观察物体(1)教案(2025秋)
- 2025年鹰潭辅警招聘考试真题及答案详解(易错题)
- 2025年铁岭辅警招聘考试真题附答案详解(研优卷)
- 2025年那曲辅警协警招聘考试备考题库含答案详解
- 2025年黔南布依族苗族自治州辅警招聘考试题库含答案详解(轻巧夺冠)
- FZ/T 51010-2014纤维级聚对苯二甲酸1,3-丙二醇酯切片(PTT)
- 国开电大-数学分析专题研究-形考任务1-3答案
- 串联和并联说课最终版
- 附表3临时工程验收记录表
- 道德与法治《我学习,我快乐》评课稿
- SC200施工升降机说明书
- 五年级下册音乐教案-7.5掀起你的盖头来 |湘艺版
- 沉默的螺旋课件
- 华东师大版七年级体育与健康《冰雪类运动的基本技术》(一等奖课件)
- ABB变频器ACS510说明书
- 学校安全用电主题教育PPT
评论
0/150
提交评论