`
zhengdl126
  • 浏览: 2542640 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

java 基础汇总

    博客分类:
  • java
阅读更多

----------------------------------第一个测试代码

<%=new java.util.Date()%>

 

 

 

----------------------------------print和tostring

print会自动调用对应的tostring 方法,很多类都重写了 tostring方法.
在自定义的类中也可以重写toString方法,这样print就可以按照你的要求来输出
class Point
{
public static void toString()
{
    renturn "x="+x+"y="+y;
}
}

 

 

--------------------------------静态代码段

当类被访问时,静态代码段也会执行

class Point {
    static
    {
        System.out.println("Point class");
    }
   
}


/*
结果是:
Before Point class
Point class
after Point class
*/

 

--------------------------------异常

public class YiChang2
{
        public static void main(String args[])
        {
                int a,b;
                try
                {
                        a=0;
                        b=5/a;
                        System.out.println("需要检验的程序");
                }
                catch(ArithmeticException e)
                {
                        System.out.println("发生ArithmeticException异常");
                }
                System.out.println("结束");
        }
}

 

--------------------------------栈内存和堆内存

1.将两个坐标点互换,不能有第三个变量

public class Test {
    public static void main(String[] args) {
        int x=3;
        int y=4;
        x=x+y;
        y=x-y;
        x=x-y;
        System.out.println(x);
        System.out.println(y);
    }
}

public class Test {
    public static void change(int x,int y)
    {
        x=x+y;
        y=x-y;
        x=x-y;
    }
    public static void change(int[] num)
    {
        num[0]=num[0]+num[1];
        num[1]=num[0]-num[1];
        num[0]=num[0]-num[1];
    }
    public static void change(Point pt)
    {
        pt.x=pt.x+pt.y;
        pt.y=pt.x-pt.y;
        pt.x=pt.x-pt.y;
    }
    public static void main(String[] args) {
        int x=3;
        int y=4;
        change(x,y);
        System.out.println(x);
        System.out.println(y);
       
        int[] num=new int[]{3,4};
        change(num);
        System.out.println(num[0]);
        System.out.println(num[1]);
       
        Point pt=new Point();
        pt.x=3;
        pt.y=4;
        change(pt);
        System.out.println(pt.x);
        System.out.println(pt.y);
    }
}


结果为;

4
3
4
3


为什么第一个基本数据类型x,y结果没有发生互换?

在java中,传参时,都是以传值的方式进行的。
对于基本数据类型,传递的都是数据的拷贝,对于引用类型,传递的引用的拷贝。

 



 

2 通过引用类型来熟悉java中的栈内存和堆内存

 


 

其它的数据类型都是引用对象。比如数组,string

String s1= new String(“abc”);
String s2= new String(“abc”);

If(s1== s2)//==是表示两个对象在栈内存中的引用值是否相等,所以不相等
{

}


If(s1.equals(s2)) //==是表示两个对象在堆内存中的的值是否相等,即字符串对象,所以相等
{

}
equals 在java.lang.object,而String 类将equals方法重写了。

 

 

 


 

“当我们声明一个引用类型变量时,系统只为该变量分配了引用空间,初始的通常为null”只有通过new来生成的对象才会被保留在堆内存中


public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String s1= new String("abc");
        String s2= new String("abc");
        String s3=s1;
        s3="ccc";
        System.out.println(s1);
        System.out.println(s3);

    }

}
//abc
  ccc

 

 

----------------------------------递归

public class RecursionDemo
{
    public static void main(string[] args)
    {
        system.out.println("writeVertical(3):");
        writeVertical(3);
       
        system.out.println("writeVertical(12):");
        writeVertical(12);
       
        system.out.println("writeVertical(324):");
        writeVertical(3);
       
    }
   
    public static void writeVertical(int n)
    {
        if(n<10)
        {
            system.out.println(n);
        }else
        {
            writeVertical(n/10);
            system.out.println(n%10);
        }
    }
}


/*输出:
3

1
2

3
2
4

*/

 

 

----------------------------------数组  数组类型是引用类型

double[] score=new double[5];
score.length 等于5

 

 

 

-----数组初始化

int[] age={2,12,1};
_________________
int[] age= new int(3);
age[0]=2;
age[1]=12;
age[2]=1;
__________
int[] i=new int[]{1,2,3};

 

 

-----多维数组

char[][] a = new char[5][12];

int[][] myarray = new int[4][5];
for(int index1=0;index1<myarray.length;index1++)
{
    for(int index2=0;index2<myarray[index1].length;index2++)
    {

    }
}

 

 

-----循环

public class Test {
    public static void main(String[] args) {
        int[] num=new int[3];
        for(int i=0;i<num.length;i++)
        {
            System.out.println(num[i]);
        }
    }
}

 

 

-----数组排序

静态方法Arrays.sort

import java.util.*;
public class Test {
    public static void main(String[] args)
    {
        int[] num1=new int[]{2,1,3};
        Arrays.sort(num1);
        for(int i=0;i<num1.length;i++)
        {
            System.out.println(num1[i]);
        }
    }
}

/*
结果是
1
2
3

*/


Arrays.binarySearch的前提是必须使用排序Arrays.sort

import java.util.*;
public class Test {
    public static void main(String[] args)
    {
        int[] num1=new int[]{2,1,3};
        Arrays.sort(num1);
        int index=Arrays.binarySearch(num1, 3);
        System.out.println("index="+index);
        System.out.println(num1[index]);
    }
}

double[] b = {7.7,5.5,11,3,4.4};
seletionSort.sort(b,b.length);
for(int i=0;i<b.length,i++)
{
    system.out.print(b[i] + "");
}

 

 

-----java.lang.system中的arraycopy方法

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)  从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

 

public class Test {
    public static void main(String[] args)
    {
        int[] num1=new int[]{1,2,3};
        int[] num2=new int[3];
        System.arraycopy(num1, 0, num2, 0, num1.length);
        for(int i=0;i<num2.length;i++)
        {
            System.out.println(num2[i]);
        }
    }
}



对象数组:
Point.java
class Point {
    int x;
    int y;
    Point(int x,int y)
    {
        this.x=x;
        this.y=y;
    }
}


Test.java
class Test {
    public static void main(String[] args)
    {
        Point[] pt=new Point[]{new Point(1,1),new Point(2,2),new Point(3,3)};
        Point[] pt2=new Point[3];
        System.arraycopy(pt, 0, pt2, 0, pt.length);
        for(int i=0;i<pt2.length;i++)
        {
            System.out.println(pt2[i].x+"+"+pt2[i].y);
        }
    }
}



Test.java
class Test {
    public static void main(String[] args)
    {
        Point[] pt=new Point[]{new Point(1,1),new Point(2,2),new Point(3,3)};
        Point[] pt2=new Point[3];
        System.arraycopy(pt, 0, pt2, 0, pt.length);
        pt2[1].x=5;
        pt2[1].y=5;
        for(int i=0;i<pt2.length;i++)
        {
            System.out.println(pt2[i].x+"+"+pt2[i].y);
        }
    }
}

/*
结果是:
1+1
5+5
3+3

*/

 

数组的内存分配图


 

 

数组的相关操作


 

 

 

 

 

--------------------------------------将两个坐标点互换,不能有第三个变量   传值分为基本数据类型传值和引用类型传值

 

public class Test {
    public static void main(String[] args) {
        int x=3;
        int y=4;
        x=x+y;
        y=x-y;
        x=x-y;
        System.out.println(x);
        System.out.println(y);
    }
}







public class Test {
    public static void change(int x,int y)
    {
        x=x+y;
        y=x-y;
        x=x-y;
    }
    public static void change(int[] num)
    {
        num[0]=num[0]+num[1];
        num[1]=num[0]-num[1];
        num[0]=num[0]-num[1];
    }
    public static void change(Point pt)
    {
        pt.x=pt.x+pt.y;
        pt.y=pt.x-pt.y;
        pt.x=pt.x-pt.y;
    }
    public static void main(String[] args) {
        int x=3;
        int y=4;
        change(x,y);
        System.out.println(x);
        System.out.println(y);
       
        int[] num=new int[]{3,4};
        change(num);
        System.out.println(num[0]);
        System.out.println(num[1]);
       
        Point pt=new Point();
        pt.x=3;
        pt.y=4;
        change(pt);
        System.out.println(pt.x);
        System.out.println(pt.y);
    }
}


结果为;

4
3
4
3


为什么第一个基本数据类型x,y结果没有发生互换?

在java中,传参时,都是以传值的方式进行的。
对于基本数据类型,传递的都是数据的拷贝,对于引用类型,传递的引用的拷贝。

 


 

 

 


 

 

 

 

  • 大小: 32.6 KB
  • 大小: 47.3 KB
  • 大小: 34.4 KB
  • 大小: 38.9 KB
  • 大小: 52.9 KB
  • 大小: 45.5 KB
  • 大小: 30.6 KB
  • 大小: 38.9 KB
分享到:
评论

相关推荐

    Java基础知识汇总2

    该思维导图包括Java基础知识:Java提供的常见类、接口、内部类、抽象类、集合系统、异常体系、IO流、线程等基础知识。适用于Java初学者,做知识复习。

    Java基础汇总.pdf

    下面将详细介绍从给定文档中提取的Java基础知识。 **内存与Java** 内存是计算机中用于存储数据和程序的部件,分为随机存取存储器(RAM)和只读存储器(ROM)。RAM是易失性存储器,用于存储临时数据和程序,而ROM...

    08-java基础汇总学习笔记

    1. **Java基础**:Java的基础语法包括变量、数据类型、运算符、流程控制(如if语句、switch语句、循环结构for、while、do-while)以及异常处理。理解这些基础知识是学习Java的第一步。 2. **面向对象**:Java是一种...

    java基础知识点汇总

    Java 基础知识点汇总 以下是 Java 基础知识点汇总的详细说明: ### 1. 面向对象的特征 面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它强调使用对象和类来组织和结构化代码。面向对象编程的...

    Java基础知识汇总

    jdk,eclipse使用,循环,数组,基础API,面向对象,循环,运算符,关键字,String详解,IO流

    经典java基础面试题及答案大汇总.rar

    经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案大汇总.rar 经典java基础面试题及答案...

    java基础知识汇总

    ### Java基础知识汇总 #### 1. 概念与提纲 Java是一种广泛使用的高级编程语言,同时也代表了一个软件平台。其核心特色在于“一次编写,到处运行”(Write Once, Run Anywhere, WORA),这得益于Java虚拟机(JVM)的...

    Java基础知识汇总.pdf

    在计算机科学的世界里,Java技术作为一种高级的面向对象编程语言,不仅提供了一种编程...通过学习和掌握Java基础知识,开发者能够更好地编写出结构清晰、逻辑严谨、易于维护的代码,从而在软件开发领域中占据一席之地。

    传智播客_java基础知识汇总

    传智播客的“Java基础知识汇总”提供了全面的学习资源,涵盖了从入门到进阶的诸多核心概念。以下是对这些文件中可能包含的知识点的详细解释: 1. **day01-java开发前奏.doc**:这个文档可能介绍了Java开发环境的...

    java基础语法 汇总

    ### Java基础语法汇总 本文将基于给定的文件信息,对Java的基础语法进行一次全面而深入的解析。Java作为一种广泛使用的编程语言,在软件开发、Web应用、移动应用等多个领域都有着重要的地位。对于初学者而言,掌握...

    《Java基础入门(第3版)》(Java):课后答案-docx文档

    《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...

    java基础知识汇总1

    java基础知识汇总1

    java基础名词解释汇总.docx

    "Java基础名词解释汇总" Java基础名词解释汇总面向对象程序设计(Object-Oriented Programming)是指java基础名词解释汇总的主要内容。面向对象程序设计是指一种起源于六十年代,开展已经将近三十年的程序设计思想...

    Java基础教学汇总最新2018

    这份"Java基础教学汇总最新2018"是专为初学者设计的教育资源,特别适合正在学习编程的大学生和高中生。这份教程可能包括了Java语言的基础概念、语法特性、面向对象编程原理以及实际编程实践等内容。 首先,Java基础...

    java基础班汇总.pdf

    Java基础班讲义从多个方面系统地介绍了Java语言的基本知识,涵盖了Java的发展历史、开发环境的搭建、基本数据类型的使用、以及如何编写和执行Java程序。接下来,我们将详细解析这部分内容。 首先,Java的发展历史...

    java学习资料汇总

    Java学习资料汇总涵盖了从基础到高级的各个层面,包括了Java的核心概念、语法特性、类库应用以及开发工具的使用等内容。这里我们将深入探讨Java语言的关键知识点。 首先,Java的基础部分涉及变量、数据类型、运算符...

    Java学习基础汇总

    【Java学习基础汇总】 在Java学习的初期,掌握基本的环境配置和数据库操作是至关重要的。以下是一些关于Java与数据库交互的关键知识点: 1. **导入JDBC驱动**: 在Java项目中,我们需要JDBC驱动来连接数据库。在...

    Java基础知识汇总1——xmind

    该ximind文档为Java基础知识汇总,包括Java基本分类、Java的变量、Java的运算符、Java常用的工具介绍、流程控制语句、数据、面向对象等知识总结。

    Java基础知识汇总_java_

    这份"Java基础知识汇总"文档无疑为初学者和有经验的开发者提供了一个全面的学习资源,旨在帮助他们理解和掌握Java的核心概念。 首先,Java的基础知识包括了语法结构。Java是一种面向对象的语言,它的语法与C++相似...

Global site tag (gtag.js) - Google Analytics