总结安装java:大数据是处理的数据一般是pb级别的数据环境变量:数据类型:1、整型:Byte:1字节(8位)取值范围:-128~127 (若是改为unsigned,这样就是0~255)Short:短整型,2个字节(16位),-32768~32767Int:整型,4 个字节(32位)直接量的默认类型是intLong:长整型,8个字节(64位)2、浮点型(小数点型):Float:单精度浮点型4个 字节(32位)Double:双精度浮点型8个字节(64位),小数的字面量默认类型是double类型;非精确计算。字符型:字符型(c har):2个字节。Char可以存储汉字,用单引号引起来,可以存储一个汉字或字母,布尔型(booleam):true(真) false(假)类型装换:自动类型装换:(小-->大)一般是由大的包住小的。强制类型装换:(大-->小)会容易出现精密度和溢 出。Java中的运算符:1、字符运算符:+(只要一边是字符串,+作的是字符串拼接!!都是数字的化,是做加法运算!)2、赋值运算 符:=()3、算术运算符:+-/%(取模;求余)自增自减转义类型:\b退格将当前位置移到前一列\n换行\r回车\ t水平制表\“代表一个双引号字符\\代表一个反斜线字符如何控制小数后面的位数;导入控制类定义控制DecimalFormat (定义名称!)=newDecimalFormat(“#.00000”)执行语句:If语句:1、if语句,尽量用ifelse或 ifelseif语句,不能使用独立的if语句,注意判定条件顺序2、&&:并且A)、条件1&条件2,两个条件都为true结果才为 trueB)、尽量把为false的条件写在前面||:或者、条件1||条件2,有一个条件为true,结果为true、尽量把为tru e的条件写在前面、if和switch的区别:、if可以替换switch,但switch未必可以替换if、switch常用在条件值不 多,且连续的情况使用,结构比较清晰、switch判定的表达式类型只能为int、char和string、double类型的必须用if 嵌套:If和switch是可以嵌套的,(通常都是switch是嵌套到if里面的)两者的区别:能用switch的语句实现的读可以用i f语句替换,if语句的条件表达式没有任何限制,switch语句条件表达式的类型只能是byte,short,int,char,并且注 意switch中break的使用;If一般分支语句比较少,switch分支一般比较多;循环:1、While(循环的代码)循环条件: 执行条件的临界值;是需要条件满足才能进行下去;循环体:一组相同或相似的语句;在里面用break,是跳出循环,下面的代码可以执行 ;用return,是结束循环,下面的代码不可以执行;Continue:是结束本次循环;开始下一次循环;2、For循环的语法;Fo r(变量初始化,循环条件,循环后变量有变化!)For循环的情况是确定的,(增强for循环:For(intaa:a){//a代表 想要遍历的数组,aa代表数组中的每一个元素int代表每个元素的类型)3、Do....while循环(少用!一般情况是用for和 while循环!要记得用这样的循环!)注意:无论不满足循环条件,循环体至少都要循环一次。Random:随机生成一个数字三目运算符A 数组(是一种变量,相同的数据类型的有序集合)数据类型[]数组名={元素1,元素2...元素n}B多维数组(和一维数组差不 多)数据类型[]数组名={(1,2),(2,3)}数组的排序(由大到小,或由小到大!)Array.sort(a)//由小到大 的顺序排序调用:项目调用:定义新的类型对象的属性;方法:对象的行为,对象的功能1.实例化(实例化是将实例化的内容调用)数据类型 变量名=new类名();2.属性的赋值和访问属性的赋值语法:变量名.属性名=属性值;属性访问语法:变量名.属性名3.方 法的调用;语法:变量名.方法名();4.实例化一个对象时,如果没有给属性初始值,会给属性赋初始值,整型(byte,short,i nt,long):0;浮点型(float,double):0.0;booleam:false;引用类型:null;5.引用类型变 量:类,数组,接口的变量都是引用类型变量6.引用类型赋值为null时,调用给类的属性和方法的时候会报空指异常方法重载!和返回没关 系!方法名一样,参数列表(参数的个数,参数类型,)This关键字This代表的是当前对象,谁调用该方法,this就属于谁;类和对 象的区别;类就是对象的抽象!抽出对象所具有的特征和行为;对象是类的实例化!抽象类不能实例化对象构造方法语法:修饰符类名(参数(可 有可无)){}//在内存中开辟空间//给属性赋值编译器默认提供一个无参的构造器;若是打出来构造器,编译器就不会运用原来的构造器 ;1在内存开辟空间;2给类的属性赋初始值Class为类;其它的为对象;局部变量在编译器变量的值,外面是不可以访问到里面;封装性 (保护)1.Private(属性私有性)public(方法公有化)2.保护类,不被类之外的方法访问;3.访问通过get(获取) 或者set(赋值);4.只有set,是可写不可读,只有get是可读不可写;多态性方法重载:overloading;方法覆盖:ove rriding;子类把夫类的方法重写一遍,只有方法体不同,其它都一样,向下转型和里式代换:声明为父类类型的对象可以代表父类,也可以 代表任意子类,调用方法时,实际类型是哪个子类,就调用哪个子类的方法重写和重载的区别:重写:存在父子类,方法名,参数列表相同(不简单 的东西,需要注意!)重载:存在同一类中,方法名,参数列表不同继承(故名思意)面向对象最主要的特性,代码复用代码复用(调用父类的方法 ,)重写父子类之间出现方法重写,要求:方法名和参数列表一样,调用时根据创建的对象调用方法。子类不能继承父类的构造器多态性:是对象多 种表现形式的体现(方式:方法覆盖,方法重载)(考官可能会考)重载与重载的区别:重载:发生在同一个类,方法名一样,参数列表不一样重写 :发生在父子类之间多态性同一操作作用于不同的对象,可以有不同的解释,产生不同的执行效果多态允许方法重名参数或返回值可以是父类型 传入或返回,修饰符和父类的一样大或者比父类大(例子:子类的是public那父类的是public,private(默认的)p rotected)向上转型:父类的引用指向子类的对象向下转型:父类的引用指向子类型的对象,具体调用哪个方法,是程序运行期间确定 的,根据引用指向的对象来确定哪个方法,多态性的必要条件(3个)继承重写父类引用指向子类对象注意:运行时多态是动态多态,其具体引用的 对象在运行时才能确定。编译时多态是静态多态,在编译时就可以确定对象使用的形式。访问修饰修饰类Public修饰类时,该类是公共的,都 可以访问到。。。默认的修饰类时,在同包中可以访问到Static修饰符(重复写都记不住!有毛用啊!)Static修饰方法时,该方法是 静态方法静态方法是类级别的Final(最终的)修饰Final修饰的类不能被继承注意:String就是一个被final修饰的类,只 能用,不用继承Final不仅可以修饰类,还可以修饰变量,被final修饰的变量是一个常量,只能赋值一次Final修饰方法时,该方法 不能被重写;Final可以修饰成员变量和局部变量Final和static一起修饰时,要赋初始值时必须申明同时初始化封装,继承,输出 不要写在方法里面,在测试类输出时不要重复实例化的输出,类有静态(static修饰)和动态的(动态可以调用静态的,静态的不能调用动态 的。)由abstract修饰抽象类;Final修饰方法时,不能被重写。和static一起使用是,赋值初始值时必须声明初始化。抽象类 不能实例化对象,抽象类必须要继承,才能使用。(在设计阶段通常是要决定要不要使用抽象类)一个类继承了抽象类;必须实现该类中的所有的 抽象方法;抽象类里面可以写抽象方法可以写非抽象的方法,也可以写构造方法,Final不能和abstract一块修饰类接口是抽象 方法的集合,接口通常用interface来声明;接口无法被实例化,但可以被实现,必须实现接口内所描述的所有方法,否则就必须声明为抽 象类Interface不能修饰private(私有的);Publicstatic修饰方法的时候可以忽略不写(其默认的就是pub licstatic)。接口中的变量都是常量,都是publicstaticfinal修饰的,(不写的时候默认会加上的);接口中 不能定义构造器一个类可以实现多个接口,必须实现多个接口中的所有的方法(类的接口只能是单一的,但接口可以多重继承!)Implemen ts是实现接口,implements关键字放在class声明后面接口不能被实例化接口的运用(讲课,用ATM的实例)个人特性:上课跟 不了老师的步伐走,课是听了,知识是听到了,需要自己去理解消化,自己运用自己所听到的的知识自己做一些自己认为可以做的题目接口和抽象类 的区别:共同点:都可以有抽象方法并且不能实例化,都可以被继承不同点:类的修饰符不一样,抽象类是abstract修饰的,接口由int erface修饰的抽象类中的属性没有任何限制,可以是变量和常量,接口中的属性都是常量,并且都是publicstaticfina l修饰的;抽象类中可以有抽象方法也可以有具体的方法,接口中只能有抽象的方法,并且都是publicabstract修饰的抽象类中可 以定义构造器,接口不能定义构造器一个类可以实现多个接口,多个接口之间用逗号隔开用面向对象的方法实现之前所写的代码JavaAPI所 有的东西都用面向对象来做包(封)装类byteByteshortShortintIntegerlongLong floatFloatdoubleDoublecharCharacterbooleanBoolean装箱: 把基本类型转化为包装类型拆箱:把包装类型转化为基本类型Jdk1.5之后支持自动拆装箱String类是被final修饰的,不能被继 承String低层实现的是字符拆分splitStringstr=newString();String[]names =str.split(Stringregex);这个可以拆分里面的各个元素,字符串分割正则表达式:字符串的规则定义,方 便实现字符串的复杂操作[]:字符串集合,一个字符==和equals方法的区别==:比较的是否为同一对象(首地址值是否相等)Equa ls:比较的是对象内容是否相等,如果不重写equals方法,该方法底层实现还是用“==”比较,要比较同一对象,就一定要重写equa ls方法异常错误(error):JVM系统内部错误,资源耗尽等严重情况异常(excetion):其它因编程错误或偶然的外在因素导致 的一般性问题处理1.try...catch处理器Final和finally的区别:Final:修饰类,类不能被继承Throw:出 现异常不处理直接抛出去Throws:当方法中出现异常时。不想在该方法中处理,可以直接在该方法后加上throws+异常类型,自定义异 常:继承Exception类方法重写时,抛出的异常和父类中抛出的异常一样,或者是父类型抛出异常的子类型集合集合框架必须是高性能的, 基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性对一个集合 的扩展和适应必须是简单的Collection:是集合层次中的接口Set:Collection的子接口无序排列,List:Colle ction(有序可重复):是一个有序集合的元素ArrayList遍历元素和随机访问元素的效率比较高,通过继承Abstractlis t,实现动态数组LinkedList插入、删除元素时比较高!继承于AbstractSequentialList,实现了一个链表。 迭代器Iterator可以通过循环得到后删除集合的元素,总结:Java集合框架为程序员提供了预先包装的数据结构和算法来操作它!集合 是一个对象,可容纳其它对象的引用,集合接口声明对每一种类型的集合可以执行的操作。集合框架的类和接口都在java.util中无序的m ap,多个元素。Put(keyvalue)Hashable:哈希表将键映射到相应的值,允许有空值,线程不安全HashMap:有顺 序的,大致与hashable相同File:createNewFile():创建一个文件(不是文件夹)List():遍历多有目录下的 文件,返回字符串数组Delete():删除指定的文件getName():获取文件名称mkDir():创建一个目录mkDirs(): 创建联级目录isDirectory():判断是否为目录isFile():判断是否为文件Exists();判断是否存在创建之后要检测 有没有文件。测试写完字符所用的时间数据流:输入流,用于读取数据源的数据输出流,用于数据写入目的地记得要关闭(close)字节输入流 :InputStreamFileInputStream:字节输入流BuffedeInputStream:缓冲字节输入流字符输入流: ReaderFileReader:字符输入流BufferedReader:缓冲字符输入流输出流:writerOutputsteam 数出流对象输入流:ObjectOutputStreamInputStream:继承自inputStream的流都是用于向程序中 输入数据,而且数据单位都是字节(8位)Outputstream:继承outputstream的流都是程序用于向外输出数据,而且数据 单位都是字节(8位)Reader:继承自reader的流都是用于向程序输入数据的,数据单位是字符(16位)Writer:继承自wr iter的流都是程序用于向外输出数据的,数据单位是字符(16位)线程共享了进程的公共资源;线程依赖进程;(线程就是一条公路;进程就 是公路上的路程!)线程与线程之间可以一起执行线程由进程运行创建线程的两种方式(执行体都是run方法)继承Thread类;启动sta rt()方法,可以让两个的线程同时进行,可以设置优先级:x.setPriority(Thread.max_priority)(最高 优先级)x.setpriority(Thread.mix_priority)(最低优先级)默认的是5优先级最高是10级,最 低是1级实现Runnable接口setName()设置线程名称Getname()返回该线程的名称Getid()获得该线程的id 线程终止是,线程id可以被重新使用Setdaemon()测试守护线程当只剩下守护线程时,守护线程会强制停止Yield():暂 停当前正在执行的线程对象,并执行其它线程Join():等待该线程终止的时间最长为millis毫秒Synchronized(){} //这是锁锁机制;异步操作,多线程并发的操作,相当于各干各的同步操作,有先后顺序,相当于弄完之后别的再弄反射:动态获取类的信息,以 及动态调用对象的方法的功能。可以理解为动态看透类的能力。主要功能:查看类的属性,普通的方法和构造器常用方法:(1)publicS tringgetName()返回此Class对象所表示的实体的全限定名称。(2)publicField[]getFi elds()返回此Class对象所表示的实体的所有公共属性。(3)publicField[]getDeclaredFi elds()返回此Class对象所表示的实体的所有字段,但不包括继承的字段。(4)publicMethod[]getMe thods()返回此Class对象所表示的实体的公共方法。(5)publicMethod[]getDeclaredMe thods()返回此Class对象表示的实体的所有方法,但不包括继承的方法。(6)publicMethodgetMet hod(Stringname,Class...parameterTypes)返回此Class对象所表示的实体的指定公共 成员方法,name指定方法名称,parameterTypes指定方法参数类型。(7)publicConstructor[]ge tConstructors()返回此Class对象所表示的类的所有公共构造方法。(8)getDeclaredConstru ctors()返回此Class对象表示的类声明的所有构造方法。(9)getDeclaredConstructor(Clas s...parameterTypes)返回此Class对象所表示的类的指定构造方法。publicClasserT>getSuperclass()返回此Class对象所表示的实体的超类的Class。(10)publicClass[]getInterfaces()确定此Class对象所表示的类实现的接口。(11)publicTnewInstance()创建此Class对象所表示的类的一个新实例。(12)publicPackagegetPackage()获取此类的包。【String[Package].getName()】4.注解:是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理、使用原因:编写代码的时候也会尽量的去用注解,一是方便,二是代码更加简洁。常用注解:@Override,表示当前的方法定义将覆盖超类中的方法。@Deprecated,使用了注解为它的元素编译器将发出警告,因为注解@Deprecated是不赞成使用的代码,被弃用的代码。@SuppressWarnings,关闭不当编译器警告信息unchecked抑制单类型的警告,不检查,all抑制所有类型的警告 |
|