美文网首页
31.Java语言程序设计

31.Java语言程序设计

作者: 为梦想战斗 | 来源:发表于2018-08-22 16:01 被阅读0次

一、计算机、程序和Java概述

二、基本程序设计
Scanner input = new Scanner(System.in);
double radius = input.nextDouble();

三、选择
Math.random()产生一个0.0到1.0之间的随机double值。

四、数学函数、字符和字符串
int intValue = Integer.parseInt(intString);
double double = Double.parseDouble(doubleString);
String s = number + "";

五、循环
java SentinelValue <input.txt> output.txt

六、方法

七、一维数组
for(elementType element:arrayRefVar) {}
具有同样类型的可变长度的参数可以传递给方法,并将作为数组对待
Arrays.sort();

八、多维数组

九、对象和类
Date和Random类的使用

十、面向对象思想
根据上下文环境,基本数据类型可以使用包装类自动转换成一个数据,反过来的自动转换也可以
BigInteger类和BigDecimal类可以用于表示任意大小和精度的整数或者十进制数
正则表示式匹配:"Java is fun".matches("Java.*"); "440-02-4534".matches("\d{3}-\d{2}-\d{4}"); String s = "a+b#c".replaceAll("[+#]","NNN");
toArray和valueOf
StringBuildt StringBuffer,注意StringBuffer并发访问时要同步

十一、继承和多态
UML继承关系用空的三角形表示
多态意味着父类型的变量可以引用子类型的对象
动态绑定:对象调用哪个方法由对象 的实际类型决定。声明类型没什么卵用。
List和数组转换:asList()、toArray()
List方法:sort()、max()、min()、shuffle()
被final修饰的类和方法都不能被扩展和重写

十二、异常处理和文本I/O
File file = new File("images/us.gif"); //不要使用绝对路径,使用相对路径

PrintWriter output = new PrintWriter(file);
output.print("John T Smith ");
output.close(); //可以使用try-with-resourse自动关闭资源

Scanner input = new Scanner(new File(file name));
String Name = input.next();
input.close();

Scanner input = new Scanner(url.openStream()); //从web读取数据

十三、抽象类和接口
GregorianCalendar是抽象类Calendar的一个具体子类
Comparable、Cloneable

十四、JavaFX基础
JavaFX取代了Swing和AWT,用于开发富Internet应用
Button、Scene、primaryStage、StackPane

十五、事件驱动编程和动画

十六、JavaFX UI 组件和多媒体

十七、二进制 I/O
可以使用文本编辑器(比如VI)进行处理的文件称为文本文件,其他所有文件称为二进制文件。
文本文件的读写用Scanner和PrintWriter。
二进制I/O不涉及编码和解码,因此比文件I/O更加高效
FileInputStream/FileOutputStream全部方法继承超类,主要是read()/write()方法。

FileOutputStream output = new FileOutputStream("temp.dat");
output.write("haha");
FileInputStream input = new FileInputStream("temp.dat");
char value = input.read();

DataInputStream/DataOutputStream从数据流读写字节,并且与基本类型值或字符串互相转换。writeUTF/writeDouble、readUTF/readDouble/readLine

BufferedInputStream/BufferedOutputStream全部方法继承超类。
ObjectInputStream/ObjectOutputStream用于读写可序列化的对象。
RandomAccessFile从文件的任何位置进行数据的读写。

十八、递归
递归更多的是思想上的理解,比如打印n条消息、递归二分查找、汉诺塔问题

public static void nPrintln(String message,int times) {
  if(times >= 1) {
    System.out.println(message);
    nPrintln(message,times-1);
  }
}

public static int resursiveBS(int[] list,int key,int low,int high) {
  if(low > high) return -low-1;
  int mid = (low+high)/2;
  if(key < list[mid])  return resursiveBS(list,key,low,mid-1);
  else if(key == list[mid])  return mid;
  else  return rescursiveBS(list,key,mid+1,high);
}

public static void moveSisks(int n,char fromTower,char toTower,char auxTower) {
  if(n==1)  System.out.println("Move disk "+n+" from"+fromTower+"to"+toTower);
  else{
    moveDisks(n-1,fromTower,auxTower,toTower);
    System.out.println("Move disk"+n+"from"+fromTower+"to"+toTower);
    System.out.println("Move disk "+n+" from"+fromTower+"to"+toTower);
    moveDisks(n-1,auxTower,toTower,fromTower);
}

递归会造成相当大的系统开销,抛出stackoverflow,能不用就不用

十九、泛型
使用泛型的动机是在编译时检测出错误。
声明泛型方法时,泛型类型<E>要放在关键字static之后。
没有指定具体类型的泛型类和泛型接口被称为原始类型,用于和早期的Java版本向后兼容。原始类型是不安全的。
可以使用非受限通配、受限通配或者下限通配来对一个泛型类型指定范围。
泛型存在于编译时,一量编译器确认泛型类型是安全使用的,就会将它转换为原始类型。

二十、线性表、桡、队列和优先队列
Iterator iterator = collection.iterator();
LinkList/Vector
优先队列中,最高优先级的先被移出

二十一、集合和映射表
无重复元素排序时,集合比线性表更加高效。线性表通过索引来访问元素非常有用。
HashSet以一个不可预知的顺序存储元素,LinkedHashSet以元素被插入的顺序存储元素,TreeSet存储已排好序的元素

二十二、开发高效算法
动态编程通过解决子问题,然后将子问题的结果结合来获得整个问题的解的过程。

二十三、排序
插入、冒泡、归并、快速、堆、桶、基数排序、外部排序

二十四、实现线性表、栈、队列和优先队列

二十五、二叉查找树

二十六、AVL树

二十七、散列

二十八、图及其应用

二十九、加权图及其应用

三十、多线程和并行程序设计
一个任务类必须实现Runnable接口,任务必须从线程运行。
Thread类包含为任务而创建的线程的构造方法,以及控制线程的方法。
yield()为其他线程临时让出CPU时间,sleep(long mills)可以将该线程设置为休眠以确保其他线程的执行,休眠时间为指定的毫秒数。join()使一个线程等待另一个线程的结束。setProority()设置线程优先级。
Executor接口执行线程池中的任务,ExecutorService接口来管理和控制任务。newFixedThreadPool()和newCachedThreadPool()的区别。

三十一、网络

三十二、Java数据库程序设计

三十三、JavaServer Faces

相关文章

  • 31.Java语言程序设计

    一、计算机、程序和Java概述 二、基本程序设计Scanner input = new Scanner(Syste...

  • 计算机二级考试

    C语言程序设计、VB语言程序设计、Java语言程序设计、Access数据库程序设计、C++语言程序设计、MySQL...

  • 程序设计语言|分类与特点

    程序设计语言基本上可以分为:命令式程序设计语言、函数式程序设计语言、面向对象程序设计语言和逻辑程序设计语言。 1....

  • 干货 | 计算机二级考试资料包已为你备好!

    【计算机二级考试考什么鬼?】 计算机二级包括语言程序设计类(C语言程序设计、VB语言程序设计、Java语言程序设计...

  • 计算机科学导论第十五周学习总结

    一、程序设计语言 1.程序设计语言的历史和简介 (1)简介 程序设计语言是为了书写计算机程序而人为设计的符号语言,...

  • 1.2程序设计语言概述

    1.2.1计算机的可编程性需要依靠程序设计语言来体现 程序设计语言: 1、程序设计语言,也叫编程语言,是计算机能够...

  • 程序设计语言|基本概念

    程序设计语言与语言处理程序的内容 1.程序设计语言分为低级语言和高级语言 低级语言:机器语言和汇编语言。 机器语言...

  • 重新学习爪洼的第一天-前言

    首先,简单的描述一下何为java,java是一种程序设计语言,再者,何为程序设计语言,程序设计语言是我们使用计算机...

  • 2018-12-23

    程序设计语言简介 1.程序设计语言分类 1. 机器语言(machine language) 一种二进制语言,直接使...

  • 200912.《Python语言程序设计》-0.1-课程导学

    《Python语言程序设计》-0.1-课程导学 《Python语言程序设计》所有教学视频 课程基本内容 课程导学视...

网友评论

      本文标题:31.Java语言程序设计

      本文链接:https://www.haomeiwen.com/subject/jriheftx.html