「java例程」java例程库是什么?
本篇文章给大家谈谈java例程,以及java例程库是什么?对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、北大青鸟java培训:怎样才可以写好Java程序?
- 2、关于java编程问题
- 3、我想学习JAVA编程语言,但不知从啥开始?
- 4、Java JOptionPane是什么东西?为什么我看一个例程,前面没有声明然后就直接调用它了?
- 5、java怎么输出?
- 6、用java运行Hadoop例程报错,帮看看org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.
北大青鸟java培训:怎样才可以写好Java程序?
当下很多朋友学Java,最由衷希望的就是自己能够快速的把Java程序写好,Java程序能够写的不错,那么表明自己在Java的学习上已经跨出很大的一步了。
IT培训认为Java初学者把Java程序写好了,那么离Java就业就会越来越近,Java程序员把Java程序写好了,那么离升职加薪也会越来越近。
如何才能够写好Java程序?今天就跟北大青鸟小编,一起来好好的想想辄吧。
要想写好Java程序,首先是得本身就很喜欢写程序,喜欢的话,那么才会好好的专研,觉得写程序是件快乐的事情,那么写好Java程序,无论付出多大的努力,也觉得不辛苦,因为这是你乐意干的事情。
但是,你不喜欢写Java程序,那么作为Java程序员,写Java程序对于你来说本身就是件很痛苦的事情,做着你不想做的事情,你会尽全力提升自己吗?很难,所以在一开始的时候,就得十分明确你到底对Java感不感兴趣,你到底愿不愿意进行Java编程这件工作,你愿意那么每写一行代码,都会有新的成就。
如何才能够写好Java程序?那么就离不开你的模仿,比如你可以买几本经典的Java编程书,把书上所有例程全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。
时间长了,自然就能写出像书上例程一样的代码,甚至可以比书上写得好,你的Java程序编写自然是会越来越棒的。
关于java编程问题
程序代码: import java.util.*;
class person
{
private String name;
private String sex;
//构造函数
public person(){}
public person(String name,String sex)
{
this.name=name;
this.sex=sex;
}
//set get方法
public void set(String name,String sex)
{
this.name=name;
this.sex=sex;
}
public String get()
{
return name+" "+sex;
}
//toString方法
public String toString()
{
return name+" "+sex;
}
//主函数
public static void main(String args[])
{
///ArrayList
ArrayList al = new ArrayList();
person p1= new person("xiaohan","male");
person p2= new person("wanghu","male");
person p3= new person("panxiao","male");
al.add(0,p1);
al.add(1,p2);
al.add(2,p3);
al.remove(1);//删除p2
System.out.println("ArrayList's size:"+al.size());
for(int i=0;ial.size();i++)
{
person e =(person)al.get(i);
System.out.println(e);
}
System.out.println("\n\n");
//HashMap
HashMap hm = new HashMap();
hm.put(new person("zhangsan","male"),99);
hm.put(new person("lisa","male"),80);
hm.put(new person("wangwu","male"),90);
System.out.println("HashMap's size:"+hm.size());
System.out.println(hm);
hm.remove(new person("wangwu","male"));
Set e=hm.entrySet();
Iterator iter=e.iterator();
while(iter.hasNext())
{
Map.Entry entry =(Map.Entry)iter.next();
Object key =entry.getKey();
Object value=entry.getValue();
System.out.println("key="+key+", value="+value);
}
}
}
执行结果:
我想学习JAVA编程语言,但不知从啥开始?
Java新手入门的30个基本概念
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。
Java概述:
目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出。
Java的白皮书为我们提出了Java语言的11个关键特性。
(1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。
(2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet。
(3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型。
(4)健壮特性:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能型。
(5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的比较好。
(6)中立体系结构:Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释执行。
(7)可移植性:Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植性很好。
(8)多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一。
(9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的。
基本概念:
1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。
2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。
3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。
4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍。
5.对象的3个主要特性
behavior---说明这个对象能做什么.
state---当对象施加方法时对象的反映.
identity---与其他相似行为对象的区分标志.
每个对象有唯一的indentity 而这3者之间相互影响.
6.类之间的关系:
use-a :依赖关系
has-a :聚合关系
is-a :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中)
7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化。
例:Data类的构造器叫Data
new Data()---构造一个新对象,且初始化当前时间.
Data happyday=new Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用。
构造器特点:构造器可以有0个,一个或多个参数
构造器和类有相同的名字
一个类可以有多个构造器
构造器没有返回值
构造器总是和new运算符一起使用.
8.重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载.编译器必须挑选出调用哪个方法。
9.包(package)Java允许把一个或多个类收集在一起成为一组,称作包,以便于组织任务,标准Java库分为许多包.java.lang java.util java,net等,包是分层次的所有的java包都在java和javax包层次内。
10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段。
11.扩展类:扩展类充分体现了is-a的继承关系. 形式为:class (子类) extends (基类)。
12.多态:在java中,对象变量是多态的.而java中不支持多重继承。
13.动态绑定:调用对象方法的机制。
(1)编译器检查对象声明的类型和方法名。
(2)编译器检查方法调用的参数类型。
(3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法。
(4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本。
(5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码。
14.final类:为防止他人从你的类上派生新类,此类是不可扩展的。
15.动态调用比静态调用花费的时间要长。
16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。
例: public abstract string getDescripition
17.Java中的每一个类都是从Object类扩展而来的。
18.object类中的equal和toString方法。
equal用于测试一个对象是否同另一个对象相等。
toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.
(toString 方法是一个很重要的方法)
19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小。
21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。
22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具。
能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大.
1.在运行时分析类的能力。
2.在运行时探察类的对象。
3.实现通用数组操纵代码。
4.提供方法对象。
而此机制主要针对是工具者而不是应用及程序。
反射机制中的最重要的部分是允许你检查类的结构.用到的API有:
java.lang.reflect.Field 返回字段.
java.reflect.Method 返回方法.
java.lang.reflect.Constructor 返回参数.
方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案。
23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface。
24.接口不是一个类,而是对符合接口要求的类的一套规范。
若实现一个接口需要2个步骤:
1.声明类需要实现的指定接口。
2.提供接口中的所有方法的定义。
声明一个类实现一个接口需要使用implements 关键字
class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口.
25.一个类只有一个超类,但一个类能实现多个接口。Java中的一个重要接口:Cloneable
26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。
例:ActionListener 接口监听.
类似的API有:java.swing.JOptionPane
java.swing.Timer
java.awt.Tookit
27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它。
28.内部类:一个内部类的定义是定义在另一个内部的类。
原因是:
1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。
2.对于同一个包中的其他类来说,内部类能够隐藏起来。
3.匿名内部类可以很方便的定义回调。
4.使用内部类可以非常方便的编写事件驱动程序。
29.代理类(proxy):
1.指定接口要求所有代码
2.object类定义的所有的方法(toString equals)
30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于Unicode编码中的字符,布尔型。
Java JOptionPane是什么东西?为什么我看一个例程,前面没有声明然后就直接调用它了?
JOptionPane是java提供的一个类。一般只是用里面的某几个静态方法,比如JOptionPane.showMessage***()什么什么的。表示在当前窗体显示一个消息提示框
这些方法是静态的,直接用类就可以调用了。
java怎么输出?
java控制台输出由print( ) 和 println( )来完成最为简单。这两种方法由rintStream(System.out引用的对象类型)定义。尽管System.out是一个字节流,用它作为简单程序的输出是可行的。因为PrintStream是从OutputStream派生的输出流,它同样实现低级方法write(),write()可用来向控制台写数据。PrintStream 定义的write( )的最简单的形式如下:
void write(int byteval)
该方法按照byteval指定的数目向文件写字节。尽管byteval 定义成整数,但只有低位的8个字节被写入。下面的短例用 write()向屏幕输出字符“A”,然后是新的行。
// Demonstrate System.out.write().
class WriteDemo {
public static void main(String args[]) {
int b;
b = 'A';
System.out.write(b);
System.out.write('\n');
}
}
一般不常用write()来完成向控制台的输出(尽管这样做在某些场合非常有用),因为print()和println() 更容易用。
四、PrintWriter类
尽管Java允许用System.out向控制台写数据,但建议仅用在调试程序时或在例程中。对于实际的程序,Java推荐的向控制台写数据的方法是用PrintWriter流。PrintWriter是基于字符的类。用基于字符类向控制台写数据使程序更为国际化。PrintWriter定义了多个构造函数,这里所用到的一个如下:
PrintWriter(OutputStream outputStream, boolean flushOnNewline)
outputStream是OutputStream类的对象,flushOnNewline控制Java是否在println()方法被调用时刷新输出流。如果flushOnNewline为true,刷新自动发生,若为false,则不发生。
PrintWriter支持所有类型(包括Object)的print( )和println( )方法,这样,就可以像用ystem.out那样用这些方法。如果遇到不同类型的情况,PrintWriter方法调用对象的toString()方法并打印结果。用PrintWriter向外设写数据,指定输出流为System.out并在每一新行后刷新流。例如这行代码创建了与控制台输出相连的PrintWriter类。
PrintWriter pw = new PrintWriter(System.out, true);
下面的应用程序说明了用PrintWriter处理控制台输出的方法:
// Demonstrate PrintWriter
import java.io.*;
public class PrintWriterDemo {
public static void main(String args[]) {
PrintWriter pw = new PrintWriter(System.out, true);
pw.println("This is a string");
int i = -7;
pw.println(i);
double d = 4.5e-7;
pw.println(d);
}
}
该程序的输出如下:
This is a string
-7
4.5E-7
io包支持Java的基本I/O(输入/输出)系统,包括文件的输入/输出。对输入/输出的支持是来源于Java的内核API库,而不是语言关键字。
一、输入/输出基础
很多实际的Java应用程序不是基于文本的控制台程序。尽管基于文本的程序作为教学实例是很出色的,它们无法胜任JAVA在实际中的重要应用。Java对外设输入/输出的支持也是有限的,并且用起来有些笨拙——甚至是在简单的例子程序中。基于文本的控制台输入/输出对于Java程序并不是十分重要。
Java 提供了与文件和网络相关的强大的和灵活的输入/输出支持,Java的输入/输出系统是紧密相连并且是具有一致性的。
1.1 流的概念
Java程序通过流来完成输入/输出。流是生产或消费信息的抽象。流通过Java的输入/输出系统与物理设备链接。尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式。这样,相同的输入/输出类和方法适用于所有类型的外部设备。这意味着一个输入流能够抽象多种不同类型的输入:从磁盘文件,从键盘或从网络套接字。同样,一个输出流可以输出到控制台,磁盘文件或相连的网络。流是处理输入/输出的一个洁净的方法,例如它不需要代码理解键盘和网络的不同。Java中流的实现是在java.io包定义的类层次结构内部的。
1.2 字节流和字符流
要使用流类,必须导入Java.io包。Java 2 定义了两种类型的流:字节类和字符类。字节流(byte stream)为处理字节的输入和输出提供了方便的方法。例如使用字节流读取或书写二进制数据。字符流(character stream)为字符的输入和输出处理提供了方便。它们采用了统一的编码标准,因而可以国际化。在某些场合,字符流比字节流更有效。在最底层,所有的输入/输出都是字节形式的。基于字符的流只为处理字符提供方便有效的方法。下面是对字节流和字符流的概述。
1.2.1 字节流类
字节流由两个类层次结构定义。在顶层有两个抽象类:InputStream 和 OutputStream。每个抽象类都有多个具体的子类,这些子类对不同的外设进行处理,例如磁盘文件,网络连接,甚至是内存缓冲区。字节流类显示于表1-1中。
表1-1 字节流类
流类 含义
BufferedInputStream缓冲输入流
BufferedOutputStream缓冲输出流
ByteArrayInputStream从字节数组读取的输入流
ByteArrayOutputStream向字节数组写入的输出流
DataInputStream包含读取Java标准数据类型方法的输入流
DataOutputStream包含编写Java标准数据类型方法的输出流
FileInputStream读取文件的输入流
FileOutputStream写文件的输出流
FilterInputStream实现InputStream
FilterOutputStream实现OutputStream
InputStream描述流输入的抽象类
OutputStream描述流输出的抽象类
PipedInputStream输入管道
PipedOutputStream输出管道
PrintStream包含print()和println()的输出流
PushbackInputStream 支持向输入流返回一个字节的单字节的“unget”的输入流
RandomAccessFile支持随机文件输入/输出
SequenceInputStream两个或两个以上顺序读取的输入流组成的输入流
抽象类InputStream 和 OutputStream定义了实现其他流类的关键方法。最重要的两种方法是read()和write(),它们分别对数据的字节进行读写。两种方法都在InputStream 和OutputStream中被定义为抽象方法。它们被派生的流类重载。
1.2.2 字符流类
字符流类由两个类层次结构定义。顶层有两个抽象类:Reader和Writer。这些抽象类处理统一编码的字符流。Java中这些类含有多个具体的子类。字符流类如表1-2所示。
表1-2 字符流的输入/输出类
抽象类Reader和Writer定义了几个实现其他流类的关键方法。其中两个最重要的是read()和write(),它们分别进行字符数据的读和写。这些方法被派生流类重载。
1.3 预定义流
所有的Java程序自动导入java.lang包。该包定义了一个名为System的类,该类封装了运行时环境的多个方面。System 同时包含三个预定义的流变量,in,out和err。这些成员在System中是被定义成public 和static型的,这意味着它们可以不引用特定的System对象而被用于程序的其他部分。
System.out是标准的输出流。默认情况下,它是一个控制台。System.in是标准输入,默认情况下,它指的是键盘。System.err指的是标准错误流,它默认是控制台。然而,这些流可以重定向到任何兼容的输入/输出设备。System.in 是inputStream的对象;System.out和System.err是PrintStream的对象。它们都是字节流,尽管它们用来读写外设的字符。但可以用基于字符的流来包装它们。
二、读取控制台输入
在Java 1.0中,完成控制台输入的惟一途径是字节流,使用该方法的老代码依然存在。今天,运用字节流读取控制台输入在技术上仍是可行的,但这样做需要用到不被赞成的方法,这种做法不值得推荐。Java 2中读取控制台输入的首选方法是字符流,它使程序容易符合国际标准并且易于维护。
Java没有像标准C的函数scanf()或C++输入操作符那样的统一的控制台输入方法。Java中,控制台输入由从System.in读取数据来完成。为获得属于控制台的字符流,在BufferedReader对象中包装System.in。BufferedReader 支持缓冲输入流查看批注。它最常见的构造函数如下:
BufferedReader(Reader inputReader)
这里,inputReader是链接被创建的BufferedReader实例的流。Reader是一个抽象类。它的一个具体的子类是InputStreamReader,该子类把字节转换成字符查看批注。为获得链接System.in的一个InputStreamReader的对象,用下面的构造函数:
InputStreamReader(InputStream inputStream)
因为System .in引用了InputStream 类型的对象,它可以用于inputStream。综上所述,下面的一行代码创建了与键盘相连的BufferedReader对象。
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
当该语句执行后,br是通过System.in生成的链接控制台的字符流。
2.1 读取字符
从BufferedReader读取字符,用read()。这里所用的read()版本如下:
int read( ) throws IOException
该方法每次执行都从输入流读取一个字符然后以整型返回。当遇到流的末尾时它返回-1。可以看到,它要引发一个IOException异常。下面的例程演示了read()方法,从控制台读取字符直到用户键入“q”:
// Use a BufferedReader to read characters from the console.
import java.io.*;
class BRRead {
public static void main(String args[])
throws IOException
{
char c;
BufferedReader br = new
BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter characters, 'q' to quit.");
// read characters
do {
c = (char) br.read();
System.out.println(c);
} while(c != 'q');
}
}
下面是程序运行:
Enter characters, 'q' to quit.
123abcq
1
2
3
a
b
c
q
2.2 读取字符串
从键盘读取字符串,使用readLine()。它是BufferedReader 类的成员。它的通常形式如下:
String readLine( ) throws IOException
它返回一个String对象。下面的例子阐述了BufferedReader类和readLine()方法;程序读取和显示文本的行直到键入“stop”:
// Read a string from console using a BufferedReader.
import java.io.*;
class BRReadLines {
public static void main(String args[])
throws IOException
{
// create a BufferedReader using System.in
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String str;
System.out.println("Enter lines of text.");
System.out.println("Enter 'stop' to quit.");
do {
str = br.readLine();
System.out.println(str);
} while(!str.equals("stop"));
}
}
下面的例程生成了一个小文本编辑器。它创建了一个String对象的数组,然后依行读取文本,把文本每一行存入数组。它将读取到100行或直到按“stop”才停止。该例运用一个BufferedReader类来从控制台读取数据。
// A tiny editor.
import java.io.*;
class TinyEdit {
public static void main(String args[])
throws IOException
{
// create a BufferedReader using System.in
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String str[] = new String[100];
System.out.println("Enter lines of text.");
System.out.println("Enter 'stop' to quit.");
for(int i=0; i100; i++) {
str[i] = br.readLine();
if(str[i].equals("stop")) break;
}
System.out.println("\nHere is your file:");
// display the lines
for(int i=0; i100; i++) {
if(str[i].equals("stop")) break;
System.out.println(str[i]);
}
}
}
下面是输出部分:
Enter lines of text.
Enter ‘stop’ to quit.
This is line one.
This is line two.
Java makes working with strings easy.
Just create String objects.
stop
Here is your file:
This is line one.
This is line two.
Java makes working with strings easy.
Just create String objects.
用java运行Hadoop例程报错,帮看看org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.
你的FileSystem是LocalFileSystem,是这个类org.apache.hadoop.fs.LocalFileSystem,并非org.apache.hadoop.hdfs.DistributedFileSystem这个类,所以强转会报错,你需要在conf中设置fs.default.name这个参数值,默认是,所以FileSystem fs = FileSystem.get(conf);
得到的是LocalFileSystem,你使用conf.set("fs.default.name",”hdfs://master:9000“)试试
关于java例程和java例程库是什么?的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。