欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Java学习笔记马士兵老师视频教学的笔记.docx

    • 资源ID:6169402       资源大小:955.17KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java学习笔记马士兵老师视频教学的笔记.docx

    1、Java学习笔记马士兵老师视频教学的笔记Java学习笔记学习Java首先要配置环境变量,在电脑属性的高级中,点击环境变量,classpath中有一英文句号“.”后跟一个分号,表示当前路径的意思。由第一个程序Helloworld为例说明Java的基本运行代码:public class HelloWorld public static void main(String args) System.out.println(Hello, World!); 在Java中只能允许有一个公共类,此区别于C+。还有Java的写作风格与C和C+有很大区别。下面细谈Java的基本语法,与其他语言类似,Java每一条

    2、语句都以“;”结束。1. short byte char 之间不会自动转换,他们运算时首先转换为int 然后进行运算;boolean不会进行转换;如:byte b1;byte b2;byte b3=byte(b1+b2);b1+b2运算后是int 类型,可以 byte a=1;/可以把数值直接赋值不超范围,(-128127)float f1=1.234f;long l1=300000000L;f和L一定加上;2. System.out.println( );/输出后换行System.out.print( );/输出后不换行&和&的区别:表达式1 & 表达式2 只要表达式1 错误,后不再计算,表

    3、达式1 & 表达式2 就算表达式1错误表达式2也会计算。+既可以作为加号,也可以作为连接符,即左右都是字符串,当有一个是字符串,系统默认把另一个转化为字符串再处理。例如:System.out.println(“c=”+ c);打印时,无论任何类型,都先转换为字符型,再进行打印。3. 聚合关系,就是包含关系,实现关系就像虚基类,在派生类中实现。4. 定义成员变量可以初始化,若不则自动初始化(可以直接在成员变量的定义时初始化);但局部变量一定要自己初始化,boolean类型默认为false,其他默认为0;在main中调用函数时,只要定义了构造函数并且初始化,就一定要把实参的值写到函数里,不能少参数

    4、。因为所有数值定义后都有默认值,所以一定要初始化如:int x; x默认为0;但是如果都不写初始值,调用函数可以不用参数。5. String 关键字是字符串定义,不是字符如:(String name=“fgsdhj”/也不用写name);必须使用new来创建对象6. 静态数据成员static:在类体(Car)中定义的时候 private static int sid = 0;在以后的public static void main()中可以通过Car.sid;或者Car mm; mm.sid;访问7. import与 package package 位于程序开始 如package com.bjs

    5、xt.java140;并把生成相应的类放到相应的子目录下即 新建文件 combjsxtjava140,把类的.class 文件放在该目录下,就是打包了,在jdk1.5以后类的.java文件可能也会影响,所以把.java 删掉。在以后的类中调用时可以 com.bjsxt.java140.类名 = new 类名();或者用引入:import com.bjsxt.java140.类名;或者import com.bjsxt.java140.*8. 在要打包的上一层文件目录 E:javatest2jar cvf test2.jar 就能把test2目录下所有文件打包成.jar文件 即windows下的压

    6、缩包。9. 继承权限:用关键字extends.有private protected default public 而private继承 继承之后也没有使用权,只有在定义private的类中才可以使用;10. 函数重写必须遵循函数名一样,参数类型,返回类型,也必须一致,并在重写的函数体中增加相应的代码,不是重载;重写的函数不能比被重写的函数有更严格的访问权限,至少一样。11. 子类的构造方法中必须对基类的构造函数声明,在子类的构造 函数中首先写 super( );里面加参数,意思是调用基类的构造函数,若不写,系统默认调用基类无参数的构造函数,若基类中没有无参数的构造函数,则编译出错;12. 在构

    7、造函数中,前面可以加public 也可以不加;在类与类之间“;”可加可不加,编译不会出错。在构造函数的入口参数设置是一定注意,与上面的初始化保持一致就好。13. object 类的定义,了解一下,其中有一个方法,toString方法是返回一个说明该类的说明,在API文档中查找,建议重写。关于object 中,equals方法返回值是boolean,可以重写, public boolean equals(object obj) 内容自定义;在main()中: System.out.println(c = = a); 或者System.out.println(a.equals(c));一样用;字符

    8、串比较也一样,且不为空才行。14. 对象类型转换,如 Animal a = new Animal(); Cat c = new Cat();System.out.println(c instanceof a)/输出true;也可以这样 a = new Cat();/基类强制转化为子类,可以,只是a 不能访问Cat类中新定义的类型。可以这样访问新定义的类型。Cat d = (Cat)a;/ 用强制类型转化基类为子类,然后转化后一样用。/e:javatest2TestTeacherTestTeacher.java15. 关于多态,一定要有继承,要有重写,要有父类指向子类的引用。动态联编的实现是为了

    9、以后程序功能的扩展,而不改变源代码. /e:javateat2TestdongtaiTestLady.java16. 抽象类:若一个类中含有抽象和方法,则一定要把给类定义为抽象类,抽象abstract 类似于C+中的纯虚函数。 Public abstract void enjoy();就没有 内部代码了。而且子类中的重写父类的那个方法一定要有实现代码,否则报错。也可以再次把该函数声明为抽象类,这样编译不会出错。但是就不能用该子类定义新对象,因为抽象类是残缺的。17. final 关键字中final 的变量不能被改变,final 的方法不能被重写 ,final 的类不能被继承。Public fi

    10、nal class String() /写法如下 final int i =9;18. interface 接口设置,即为C+中的多重继承 只是接口继承的时候不用关键字extends 而用implements 可以用implements A,B,C,D 这是与extends不同地方。在子类中分别实现积累的代码,原基类就像抽象类一样,其函数的设置在子类中实现的。 在本例中还涉及强制类型转换,可见性与不可见性的问题,还涉及动态联编。从本质上讲接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。/e:javatest2TestjiekouTestInterface.j

    11、ava19. Java中关于异常处理机制,try throw catch 其中经常使用 catch (ArithmeticException e) System.out.println(系统正在维护,请与管理员联系); e.printStackTrace(); /其中e 就像一个类的对象一样使用,e.printStackTrace();是打印出错的堆栈信息,以便修正。ArithmeticException 和printStackTrace()是系统自己定义的。20. finally 是一定执行的语句,catch 语句之后自动停止,以后不再执行。对所有异常处理,可以直接抛出throws Exce

    12、ption 不管是IoException 或是NotFoundFileException ;不想处理就继续抛出。方法重写必须与原来的抛出的异常一致,不得是别的。但是不抛异常没有关系。Finally语句进行资源清除工作。21. 数组定义,也是引用,int s,或是int s ;只是中括号内不能有数字,区别于c+;如: int a;/声明数组名字 数组声明时不能指明长度a = new int5;/动态分配空间 在动态分布空间之后, a.length自动记录数组的长度,以后可以直接调用。22.ipconfig在命令行可以显示ip地址,ipconfig-all可以显示更详细的信息;23.在main 函

    13、数中,(String args)的作用是把在命令行执行时加的参数自动保存在agrs数组里面; 补充:在基本数据类型里面,可以通过double.parsedouble( )把一个字符类型的变量转化为double 类型。其他类型类似,比如int float byte。直接把3转化为324.函数返回值类型可以是数组类型,public static Datebubblesort(Date a) return a;这样也是可以实现的。25.二位数组定义,初始化时,int a32=1,2,2,3,23,1;是错误的,不能写3 ,java 自动检查长度。26.关于string,有很多种方法,就关于字符串的种

    14、种处理,大小写处理,空格处理(trim),截取字符,把字符分割成子串(split),查找API文档。Stringbuffer是可变的字符序列,与不可变的string相比,更加具有优势,方法与其类似,在执行效率上比较高。27. dij = Double.valueOf(sSecondj); 把字符串转化为double类型的数据,调用double的方法,在前面加上Double. 一定不要少。包括二维数组的定义使用,把两维分开来写。 /E:/java/test6/ArrayParser.java 28.Math类 java.lang.math与数学相关的一些方法,File与文件相关的方法,java.

    15、io.*;文件的创建,File(String parent, String child) parent代表路径,而child 是要创建的文件名称。f.getParentFile().mkdirs(); /只是把对应的目录创建成功 文件并没有生成。/e:/java/test6/TestFile.java29.枚举类型规定只能取规定的值,其余的不允许取值,在游戏开发时多用,如:public enum mycolourred ,green ,blue;mycolour m = mycolour.red;访问时类似于静态成员变量的访问。可以提前发现错误,在编译时发现。容器:30.List与Set Ma

    16、p:(都是接口)Set 的数据对象是没有顺序不可重复的 ,即重复的元素不会被加入集合。/e:javatest7TestSet.javaList的数据对象是有顺序可以重复的,自增了一些方法,见API。Map是把数据成对成对地装入容器。Put方法是object的原因是当放入的key已经存在时,原来的value被替换掉,作为返回值返回。Get 方法返回的是value./e:javatets7TestMap.java31.iterator是collection的一个接口,其作用是容器的遍历,其方法有 hasNext , next , remove 具体用法是Iterator i = c.iterato

    17、r(); /c为Collection c = new HashSet(); 然后i就可以调用Iterator的方法了。Iterator的remove 方法是迭代过程中删除元素的唯一安全的方法。而不是c.remove。/e:javatest7collection.java32.Collections 类封装了List许多静态的方法。 调用的时候,因为是静态的方法,所以直接用类名加方法就行,如Collections.sort(l1);l1为List的容器从低到高排序/e:javatest7TestList.java33.(补充)private static final int one = 1; /

    18、关键字的顺序关于args 在运行java 。 命令时,在后面加上 数字 字母。就是加在agrs数组中。数组的args 的长度 args.length 没有括号六个基本类型Byte, Double, Float, Integer, Long, ShortInteger是int的包装类 其目的是方便各种数据的转换,如 int num = Integer.valueOf(“12”);double num2 = Double.valueOf(“12.2”);/通过基本包装数据类型的valueOf和parseXX实现String转换为XXString a = String.valueOf(“1234”)

    19、;String b = String.valueOf(true);String c = new Integer(12).toString();/通过包装类的toString也可以 34.泛型写法:Map m1 = new HashMap();具体使用 方法见java文件 以后用集合的时候尽量使用泛型/E:javatest7TestMap2.java /e:javatest7 BasicGeneric.java (使用Iterator时使用泛型)IO:35. InputStream OutputStream Reader Writer 都是抽象类不能直接new 也就是实例化,其具体的实类为Fil

    20、eInputStream FileOutputStream FileReader FileWriter,字节流是一个字节一个字节读写 字符流可以写汉字(一个字符两个字节)。InputStream方法:/e:javatest8TestFileInputStream.javaOutputStream方法:Reader Writer 类似。/E:javatest8TestFileOutputStream.java36.BUffeedrStream:BufferedReader BufferedWriter BufferedInputStreamBufferedOutputStream 提供缓冲区支持

    21、父类的mark 与reset 方法,不太常用 mark是标记位置 从标记的地方开始读写,reset是重置 ,即是读写后再次回到标记的位置。BufferedReader提供了readLine方法用于读取一行字符串。在输出readLine的内容的时候用println(),好像readLine不读取换行符。BufferedWriter提供了newLine方法写入一个行分隔符。/e:javatest8TestBufferedStream.java37.TransformIO包括OutputStreamWriter 与InputStreamReader 意思是把字节型的流转化为字符型的流。方法与前面类似

    22、。补充FileOutputStream的构造方法FileOutputStream(String str ,true )的意思是在打开的文件追加内容 而不是覆盖。OutputStreamWriter在API文档中没有找到可以直接写的方法 void write(String str)但是可以这样用。/e:javatest8TestOutputWriter.javaInputStreamReader InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr)

    23、; System.in本身就是FileStream类型的。这是写了两个处理流,System.in的意思是标准的输入,在命令行中输入内容。/e:javatest8TestInputReader.java38.DataIO ByteArrayOutputStream baos = new ByteArrayOutputStream();有两个作用一是在内存中分配字节数组,二是将OutputStream的管道接到字节数组中。ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray();ByteArrayInputStr

    24、eam的构造方法传的参数一定是字节数组。baos.toByteArray(),就是通过管道接口转化的字节数组。另外字节数组的遵循队列原则 先进先读 直接调用writeDouble ,readDouble 方法就可以实现。/e:javatest8TestDataIO.java要是发送一个long类型的数,需要ByteArrayOutoutStream 和DataOutputStream 包装 转化 同时服务器也要 ByteArrayInputStream 与DataInputStream在网络游戏中发送位置信息用的比较多。39.PrintStreamFileOutputStream fos =

    25、new FileOutputStream(e:java123.txt,true); PrintStream ps = new PrintStream(fos); System.setOut(ps); /把命令行要显示的东西直接通过管道与文件链接,写进文件。/e:javatest8TestPrintStream.javaBufferedReader br = new BufferedReader(new InputStreamReader(System.in);一定这样写 因为BufferedReader 的构造方法传的参数是Reader型的,所以要用InputStreamReader过渡一下,

    26、System.in是InputStream类的。此例子是为了说明日志的作用 ,通过文件记录操作,并形成可以查阅的文档。40.ObjectIOObjectOutputStream 与ObjectInputStream 是抽象类ObjectOutput与ObjectInput的实例化,传的参数一定是OutputStream与InputStram 作用是把类序列化 存盘。把整个类的内存全部存盘,foo.writeObject(a);/foo是ObjectOutputStream,直接将管道接到文件上的。a 是类的对象。读取的时候T b = (T)ois.readObject(); /readObje

    27、ct 返回的是Object类 要强制转化 ois是ObjectInputStream。 transient boolean c = true; /transient 关键字 是修饰的 将不被参与序列化 保持原来的默认值。 public static void main(String args)throws Exception /异常可直接抛出 不作处理/e:javatest8TestObject.java将要被序列化的类要继承Serializable接口,这个接口没有方法,只是用于标记这个类可以被序列化。class T implements SerializableThread:41.启动线程

    28、 第一种方法:实现Runnable 接口 emplements Runnable 重写 public void run()方法;在主线程中,new一个thread 对象,Thread a =new Thread (参数是emplements Runnable 的类的对象);然后a.start();启动线程。第二种方法:继承Thread类,extends Thread 重写 public void run()方法,在主线程中,用继承extends Thread的类new一个对象,调用start()方法即可。在第一种方法的时候直接调用run的方法是不可以的,这样不是多线程,而是方法调用。两种方法的

    29、选取 ,继承接口第一种比较灵活,因为继承Thread类不能再继承了,所以第一种更加好。/e:javatest9TestThread1.java42.线程控制基本方法:sleep 是Thread的静态法方法,传的参数是毫秒,在那个线程中,那个线程就进入睡眠状态。可以如是调用Thread.sleep(1000)。会抛出InterruptedException.在调用重写方法的时候要是想对异常不作处理想直接抛出,该方法不能抛出与该方法不同的异常。调用interrupt方法可以打断线程。/e:javatest9TestSleep.javajoin方法是合并线程就是把单独运行的线程合并,只执行一个线程执

    30、行完之后再运行另一个,其本质类似于方法的调用,离开现场,保护现场,回复现场。在一个时间点全部执行一个线程,执行完就返回到那个点 ,继续向下执行,就失去多线程的意义。/e:javatest9TestJoin.javayield 是让出线程给别人执行,不会抛出异常。到设定的时间点哪怕只执行一点点也会腾出空间给下一个线程执行。/e:javatest9TestYield.java优先级设置 用过Thread类的方法setPriority();优先级分为10等级,默认为5,优先级越高获得执行的时间越长。/e:javatest9TestPriority.java43.线程同步:public synchronized void add(String s) /synchronized (this) num+; try Thread.sleep(1); catch(InterruptedException e) System.out.println(s+ is +num+ timer); / /两种方式都可以自锁 目的是只允许一个线程在运行synchronized 是关键字 自锁的意思。即是同一个资源在同一时间只能被一个线程访问,防止错误,比如银行系统扣费。


    注意事项

    本文(Java学习笔记马士兵老师视频教学的笔记.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开