初学Java笔记:
public class TestRecursion01
{
public static void main(String[] args)
{
long d=a(10);
System.out.println(d);
long f=b(10);
System.out.println(f);
}
static int count=0;
static long a(int n)
{
if(n==1)
return 1;
else
return n*a(n-1);
}
//用循环的方法会更简单,更快速。
static long b(int c)
{
long x=1;
while(c>1)
{
x=x*c;
c--;
}
return x;
}
}
//递归缺点:花时间,耗内存,尽量不用!百度爬虫,递归程序。
public class TestRecursion01
{
public static void main(String[] args)
{
long d=a(10);
System.out.println(d);
long f=b(10);
System.out.println(f);
}
static int count=0;
static long a(int n)
{
if(n==1)
return 1;
else
return n*a(n-1);
}
//用循环的方法会更简单,更快速。
static long b(int c)
{
long x=1;
while(c>1)
{
x=x*c;
c--;
}
return x;
}
}
//递归缺点:花时间,耗内存,尽量不用!百度爬虫,递归程序。
public class TestMethod
{
public static void main(String[] args)
{
TestMethod tm=new TestMethod();
tm.printSxt();
int c=tm.add(10, 20, 30)+1111;
System.out.println(c);
}
void printSxt() {
System.out.println("张兆旭4.26学习java");
}
int add(int a,int b,int c) {
int sum=a+b+c;
System.out.println(sum);
return sum;
}
}
//方法重载,只有参数名称不同,不构成方法的重载。只有返回值不同也不构成重载。
public class Student
{ int id;
String name;
int age;
Computer comp;
//光有属性没有方法,叫做结构体。
void study()
{
System.out.println("张兆旭4.27"+ comp.brand);
}
//程序执行的入口,必须要有
public static void main (String[] args)
{
Student x=new Student();//创建一个 student的对象 需要在堆区new一个空间。通过构造方法创建该类的对象。
x.name="张兆旭";
Computer c1=new Computer();
c1.brand= "联想";
x.comp=c1;
x.study();
}
}
//一个java文件可以有多个类,但只能有一个public类。
//类和类之间可以互相相互调用。
class Computer
{
String brand;
}
//内存分析:java虚拟机的内存可以分为三个区域:栈stack,堆heap,方法区method area
//栈描述的是方法执行的内存模型,存储特性:先进后出,后进先出!系统自动分配,速度快,连续的内存空间
//堆heap 存放创建好的对象和数组,堆是不连续的内存空间,分配灵活,速度慢。new!在堆里面创建好了
//方法区实际上也是堆,class对象,静态变量,字符串常量等。存储类相关的信息。
/static 从属于类
//普通的从属于对象
//静态块!static{}//在类初始化的时候进行
//java中,方法中所有参数都是值传递,也就是传递的是值的副本。
//包机制,类似于文件夹。package



