第一篇:java小结
//1.累加 public class 累加 {
}
//2.阶乘
public class 30的阶乘 {
} public static void main(String[] args){
} int product=1;for(int i=1;i<=30;i++){ product=*i;} public static void main(String[] args){
} int i=1;for(int counter=1;counter<=100;counter++){ } System.out.println(i);i+=counter;
//3.倒序输出
法1 用char数组思想 import java.util.Scanner;public class 逆序输出 {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);// String input[]=new String[4];input=scan.nextLine();// huiche
// String result=“";char[] Array=input[4].toCharArray();for(int i=Array.length-1;i>=0;i--){
} result+=Array[i];} System.out.println(result);} //倒序输出 法2 用reverse()方法 import javax.swing.JOptionPane;public static void main(String[] args){
}
String a = null;StringBuffer b;//输入
a=JOptionPane.showInputDialog(a);StringBuffer c1=new StringBuffer(a);b=c1.reverse();System.out.println(b);
//4.输出100 121 144...361 public class平方输入数组 {
}
//5.求最大公约数
private static int gys(int m,int n)
{
if(n==0)
return m;else public static void main(String[] args){
} int[] array=new int[10];for(int i=0;i<10;i++){ } array[i]=Math.pow((i+10),2.0);
for(int k=0;k return gcd(n,m%n); } //6.求最小公倍数 public static int gbs(int n1,int n2){ int a =(n1>n2)? n1 : n2; for(int j=a;j<=n1*n2;j++) { if(j%n1==0 && j%n2==0) { return j; } } return 0;} //7.1)十进制整数转化为二进制整数采用“除2取余,逆序排列” import java.util.Scanner;public class Main { public static void main(String[] args){ //第一行输入要几组测试数据 int N=0,a;//N为输入几组数据,a为输入的十进制数字 } String b = null;Scanner scan=new Scanner(System.in);N=scan.nextInt();Main num=new Main();for(int i=1;i<=N;i++){ } a=scan.nextInt();b=num.deimalBinary(a);int d=num.Calcute(b);if(d%2==0)System.out.println(”Even“);else System.out.println(”Odd“); /*一个方法得到二进制数,用递归 *用2去除十进制整数,可以得到一个商和余数; *再用2去除商,又会得到一个商和余数,} *如此进行,直到商为零时为止,*然后把先得到的余数作为二进制数的低位有效位,*后得到的余数作为二进制数的高位有效位,依次排列起来 */ public String deimalBinary(int a){ } public int Calcute(String b){ } char[] Array=b.toCharArray();for(int i=0;i } if(Array[i]=='1'){ } counter+=1;return counter; //7.2)十进制小数转换为二进制小数采用“乘2取整,顺序排列” /*用2乘十进制小数,可以得到积,*将积的整数部分取出,再用2乘余下的小数部分,//8.矩阵运算(加减乘)//矩阵运算 *又得到一个积,再将积的整数部分取出,*如此进行,直到积中的小数部分为零,*或者达到所要求的精度为止。 *然后把取出的整数部分按顺序排列起来,*先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。*/ import java.util.Scanner;public class Main { public static void main(String[] args){ int N1,M1,N2,M2,K;Scanner scan=new Scanner(System.in);N1=scan.nextInt();M1=scan.nextInt();int[][] a=new int[N1][M1];for(int i=0;i for(int j=0;j N2=scan.nextInt();M2=scan.nextInt();int[][] b=new int[N2][M2];for(int i=0;i { } b[i][j]=scan.nextInt();} K=scan.nextInt();if(K==1)//加法 { int[][] c=new int[N1][M1];for(int i=0;i } { for(int j=0;j } System.out.println();} } if(K==2)//减法 { int[][] c=new int[N1][M1];for(int i=0;i } for(int j=0;j for(int j:i){ System.out.print(j+” “);} System.out.println();} } if(K==3)//乘法 { int[][] c=new int[N1][M2];for(int i=0;i } { for(int j=0;j } for(int p=0;p c[i][j]+=a[i][p]*b[p][j];for(int[] i:c)for(int j:i){ System.out.print(j+” “);} System.out.println();} } } } 9.//保留确定位数输出 import java.text.DecimalFormat;//非四舍五入 DecimalFormat myformat=new DecimalFormat(”#0.00"); myformat.format(double num);//四舍五入,例为保留2位 double f=3.1415926; BigDecimal a=new BigDecimal(f); double af=a.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); java重要知识点总结如下: 1,抽象,封装,继承,多态是面向对象程序设计中得四个特点.2,面向对象得软件开发大体分为:面向对象的分析,面向对象的设计,面向对象的实现.可概括为如下过程:分析用户需求,从问题中抽取对象模型;细化模型,设计类,包括类的属性和类间的 相互关系,同时观察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现 上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案.3,面向对象程序设计方法的优点是:可重用性,可扩展性,可管理性.4,类的定义:class前的修饰符分为访问控制符和非访问控制符两大类.访问控制符包括public和private.非访问控制符包括abstract(抽象),final(最终).5,final类是最终类,是不能有子类的类.abstract和final不能同时修饰一个类,因为抽象类本身没有具体对象,需要派生出子类后在创建子类的对象.而最终类不可能有子类.6,创建对象的格式为: 类名 对象名=new 构造方法(参数);注意前面是类名后面是构造方法.注意构造方法没有返回类型,也不能写void,主要用于完成类对象的初始化工作,一般不能直接由编程 直接调用,而是用new运算符来调用.7,如果class前面由public修饰符,则默认构造方法的前面也应该有public修饰符.8,类中有static修饰的域或方法,可用类名或对象名访问,否则只能用对象名访问.9,修饰域的访问控制符可以是:public,private,protected,private protected.非访问控制符可以是: static,final,volatile(易失域) 10,类变量的最本质的特点是:他们是类的域,不属于任何一个类的具体对象实例.不是保存在某个对象实例的内存空间中,而是保存在类的内存区域的公共存储单元中.11,局部变量是在方法体内声明的,只有当方法被调用时他们才存在,因而只能在本方法内使用,不存在访问控制符,也不能声明为静态变量(static),但可以声明为final变量.局部变量必须初始化.12,修饰方法的访问控制符可以是:public,private,protected,private protected,修饰方法的非访问控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。 13,用static修饰的变量或方法都为类成员,类成员可以用类名或实例名访问,实例成员只能用实例名来访问。 14,如果一个类中含有抽象方法,则此类必须为抽象类,如果抽象类的子类不为抽象类,则子类必须实现父类的所有抽象方法。抽象方法不能用静态方法和最终方法。抽想方法只有函数头的声明,而用分号来替代方法体,没有大括号。如abstract void abstractmethod(); 15,this变量用在一个方法的内部,指向当前对象,当前对象指的是调用当前正在执行的方法的那个对象。super变量是直接指向父类的构造方法,用来引用父类种的变量和方法。(由于他们指的是对象,所以不能通过它来引用类变量和类方法) 16,如果要引用一个包中的多个类,可以用星号来代替。使用星号只能表示本层次的所有类,而不包括子层次下的类。所以经常需要用两条语句来引入两个层次的类:import java.awt.*;import java.awt.event.*; 17,访问修饰符: --类中限定为public的成员可以被所有的类访问。 --类中先定位private的成员只能被这个类本身访问。同一个类的不同对象可以访问对方的private域变量或调用对方的域方法,这是因为访问保护控制在类的级别上,而不是对象的级别上。 --类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中和不同包中的子类),以及同一个包中的其他类访问。 --用private protected修饰的成员可以被该类本身访问,也可以被该类的所有子类访问。 --默认访问控制符规定只能被同一个包中的类访问和引用,而不能被其他包的类访问。即他的访问权限是friendly。 18,注意: ----abstract和private,static,final,native不能并列修饰同一个方法。 ----abstract类中不能有private修饰的域和方法 ----static方法不能处理非static的域。 19,重载方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。重载的多个方法必须返回相同的数据类型。 20,在java中,一个类获取某一接口定义的功能并不是通过直接继承这个接口的属性和方法来实现的。因为接口中的属性都是常量,接口的方法都是没有方法体的抽象方法,没有具体定义操作。 原文[2007年03月25日 星期日 上午 03:04] Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE。这三块相互补充,应用范围不同。 J2SE就是Java2的标准版,主要用于桌面应用软件的编程; J2ME主要应用于嵌入是系统开发,如手机和PDA的编程; J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。先学习j2se 要学习j2ee就要先学习j2se,刚开始学习j2se先建议不要使用IDE,然后渐渐的过渡到使用IDE开发,毕竟用它方便嘛。学习j2se推荐两本书,《java2核心技术一二卷》,《java编程思想》,《java模式》。其中《java编程思想》要研读,精读。这一段时间是基本功学习,时间会很长,也可能很短,这要看学习者自身水平而定。 不要被IDE纠缠 在学习java和j2ee过程中,你会遇到五花八门的IDE,不要被他们迷惑,学JAVA的时候,要学语言本身的东西,不要太在意IDE的附加功能,JAVA编程在不同IDE之间的转换是很容易的,过于的在意IDE的功能反而容易耽误对语言本身的理解。目前流行的IDE有jbuilder,eclipse和eclipse的加强版WSAD。用好其中一个就可以了,推荐从eclipse入手j2ee。因为Jbuilder更适合于写j2se程序。 选择和学习服务器使用配置 当你有了j2se和IDE的经验时,可以开始j2ee的学习了,web服务器:tomcat,勿庸置疑,tomcat为学习web服务首选。而应用服务器目前主要有三个:jboss、weblogic、websphere。有很多项目开始采用jboss,并且有大量的公司开始做websphere或weblogic向jboss应用服务器的移植(节省成本),这里要说的是,学习tomcat和jboss我认为是首选,也是最容易上手的。学习服务器使用配置最好去询问有经验的人(有条件的话),因为他们或许一句话就能解决问题,你自己上网摸索可能要一两天(我就干过这种傻事),我们应该把主要时间放在学习原理和理论上,一项特定技术的使用永远代替不了一个人的知识和学问。 学习web知识 如果你是在做电子商务网站等时,你可能要充当几个角色,这是你还要学习: html,可能要用到dreamwave等IDE。 Javascript,学会简单的数据校验,数据联动显示等等 J2eeAPI学习 学习j2eeAPI和学习服务器应该是一个迭代的过程。 先学习jsp和servlet编程,这方面的书很多,我建立看oreilly公司的两本《jsp设计》和《java servlet编程》,oreilly出的书总是那本优秀,不得不佩服。 学习jdbc数据库编程,j2ee项目大多都是MIS系统,访问数据库是核心。这本应属于j2se学习中,这里拿出来强调一下。 学习jndi api,它和学习ejb可以结合起来。 学习ejb api,推荐书《精通ejb》 经过上面的这些的学习,大概可以对付一般的应用了。 有人说跟着sun公司的《j2ee tutorial》一路学下来,当然也可以。 学习ejb设计模式和看代码(最重要) 设计模式是练内功,其重要性可以这么说吧,如果你不会用设计模式的话,你将写出一堆使用了ejb的垃圾,有慢又是一堆bug,其结果不如不用ejb实现(ejb不等于j2ee) 无论学习什么语言,都应该看大量代码,你看的代码量不到一定数量,是学不好j2ee的目前有很多开源的工程可以作为教材: jive论坛 petstore sun公司 dune sun公司 等等,研读一个,并把它用到自己的工程中来。 J2ee其他学习 当你渐渐对j2ee了解到一定深度时,你要开始关注当前领域中的一些技术变化,J2ee是一块百家争鸣的领域,大家都在这里提出自己的解决方案,例如structs,hiberate,ofbiz等等,学习这些东西要你的项目和目标而定,预先补充一下未尝不可,但不用涉及太深,毕竟学习原理和理论是最最重要的事。 目前常见j2eeAPI JavaServer Pages(JSP)技术1.2 Java Servlet技术2.3 JDBC API 2.0 Java XML处理API(JAXP)1.1 Enterprise JavaBeans技术2.0 Java消息服务(JMS)1.0 Java命名目录接口(JNDI)1.2 Java事务API(JTA)1.0 JavaMail API 1.2 JavaBeans激活架构(JAF)1.0 J2EE连接器体系结构(JCA)1.0 Java认证和授权服务(JAAS)1.0 学习上面的某些API要以你的项目而定,了解所有他们总之是有好处的上面印证了大家说的一句话,java语言本身不难学,但是技术太多,所以学java很费劲。回想一下,基本上每个初学者,在刚学习java的时候可能都会问别人这么一句话,你怎么知道的哪个方法(api)在哪个包里的?呵呵,无他,唯手熟尔。 2008年10月29日 星期三 下午 9:29 [ティン]The only one is in my world,the favourite song is wrote for you!1 垃圾收集器的问题 工作原理:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象中的内存。垃圾收集并不等于破坏! 用途;垃圾收集存在的唯一原因是为了回收程序不在是用的内存 2对象构造 (1)重载:如果多个方法,比如有相同的名字,不同的参数,便产生了重载。 ToSitrng()方法用于返回表示对象值的字符串 3监听器 监听器对象实现listener interface类 事件源是一个能够注册监听器对象并发送事件对象的对象 当事件发生时,事件源将事件对象中的信息决定如何对时间做出响应 异常、日志调试 1 用户输入错误 2 设备错误 3 物理限制 4 代码错误 Error 和Exception Error类层次结构描述了java运行时系统的内部错误和资源耗尽错误,应用程序不应该抛出这种类型的对象。如果出现了这样的错误,除了通告给用户,并尽力使程序终止之外,再也无能为力了。 Exception 划分为 RuntimeException;另一个分为其它异常 只有是应用程序错误导致的异常才叫做 RuntimeException RuntimeException出现的情况:错误的类型转换;数组访问越界;访问空指针 4集合 循环数组是一个有界的集合,是有限的容量,如果程序中没有收集数量的上线就最好是用链表来实现 Collection接口有两个方法 Add 用于向集合中添加元素 Iterator 迭代器对象可以一次访问几个中的元素 Special Drivin' Date(只 凝 视 着 你) 项目设计思路 1对象是什么(怎样将自己的项目分割成一系列单独的组件?) 2它们的接口是什么(需要将什么消息发送给每一个对象?)阶段0 模拟出一个计划 设定路标 阶段1 要制作什么 需求分析 阶段2 如何构建 UML 阶段3 开始创建 阶段4 校订 维护 向对象发送消息 Int x =a.f();f()方法的返回值类型必须是int类型 For循环在第一次反复之前要进行初始化 for(初始表达式;布尔表达式;步进) 无论继承还是合成,我们都可以在现有类型的基础上创建一个新类型。但在典型情况下,我们通过合成来实 现现有类型的“再生”或“重复使用”,将其作为新类型基础实施过程的一部分使用。但如果想实现接口的 “再生”,就应使用继承。由于衍生或派生出来的类拥有基础类的接口,所以能够将其“上溯造型”为基础 类。对于下一章要讲述的多形性问题,这一点是至关重要的。 尽管继承在面向对象的程序设计中得到了特别的强调,但在实际启动一个设计时,最好还是先考虑采用合成 技术。只有在特别必要的时候,才应考虑采用继承技术(下一章还会讲到这个问题)。合成显得更加灵活。 但是,通过对自己的成员类型应用一些继承技巧,可在运行期准确改变那些成员对象的类型,由此可改变它们的行为。 Java中public、protected、private、abstract、static和final 1.public 使用对象:类、接口、成员 介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的2.private 使用对象:成员 介绍:成员只可以在定义它的类中被访问 3.static 使用对象:类、方法、字段、初始化函数 介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。静态方法是类方法,是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在的类创建了多少实例,该字段只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行的,而不是在创建实例时执行的。 4.final 使用对象:类、方法、字段、变量 介绍:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询),字段值不允许被修改。 5.abstract 使用对象:类、接口、方法 介绍:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体为空,该方法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类 6.protected 使用对象:成员 介绍:成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类必须是该成员所属类的子类。 7.native 使用对象:成员 介绍:与操作平台相关,定义时并不定义其方法,方法的实现被一个外部的库实现。Object里面的hashCode方法是采用native的,String int这些类是重写了的 8.strictfp 使用对象:类、方法 介绍:strictfp修饰的类中所有的方法都隐藏了strictfp修饰词,方法执行的所有浮点计算遵守IEEE 754标准,所有取值包括中间的结果都必须表示为float或double类型,而不能利用由本地平台浮点格式或硬件提供的额外精度或表示范围。 9.synchronized 使用对象:方法 介绍:对于一个静态的方法,在执行之前jvm把它所在的类锁定;对于一个非静态类的方法,执行前把某个特定对象实例锁定。 10.volatile 使用对象:字段 介绍:因为异步线程可以访问字段,所以有些优化操作是一定不能作用在字段上的。 volatile有时可以代替synchronized。 11.transient 使用对象:字段 介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起.第二篇:java知识点小结
第三篇:java个人小结(范文模版)
第四篇:java小结
第五篇:java个人小结——修饰符