其实任何程序都有一个入口,对java来说就是你要执行的那个具体类必须有一个main方法,就想你附件中提示的,一个静态共有的main方法。而看你写得的代码很有意思是定义了一个stud的类,这个类有静态方法,但居然在这个类之外又直接定义了一个私有类Person。我估计你那个编辑器运行的时候随机查找类的main方法,有时候认为当前类是Person去运行了所以提示Person找不到main方法。很简单,你吧Person定义在stud里面或者单独写一个文件定义Person类。
创新互联建站专注于企业成都全网营销、网站重做改版、仓山网站定制设计、自适应品牌网站建设、H5页面制作、商城开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为仓山等各大城市提供网站开发制作服务。
定义在stud里面你可以这样写
public class stud{
class Person{
private String name; //声明姓名属性
private int age; //声明年龄属性
public Person(){ //无参构造
}
public Person(String name,int age){ //取得信息的方法
this(); //在此处调用Person类中的无参构造方法
this.name=name;
this.age=age;
}
public String getInfo(){ return"姓名:"+name+"; 年龄:"+age; } //取得信息
}
public static void main(String[] args){
Person per=new Person("小张",23); //调用构造实例化对象
System.out.println(per.getInfo()); //取得信息
}
}
原因在于java是运行在jm虚拟机里面,属于解析语言,所以java启动速度和运行速度都非常慢。
java的唯一优点就是开发比较方便,开发界面程序一般用c++或c#或其它,很少人用java的,java那个运行效率真的太垃圾了,内存回收机制垃圾,程序响应慢,体积大就是java的最大缺点。
这是因为同一段代码运行的时间不一样,所以调用结果显示的就可能会有差距,时间短时可以显示,时间长时后面的跑在前面了,提前加载了。
图一第11行,for循环中的i使用的是静态成员变量。
图二第7行,for循环中的i使用的是局部变量。
静态成员变量我个人理解是类的一个固有属性,一般只有常量才会定义成静态成员变量,定义为变量就会发生图一的情况:类的实例1和实例2都操作了静态成员变量i,导致实例2在取i的初始值时,收到了实例1的影响。
而图二中因为for循环使用的是局部变量i,类的静态成员变量i的值没有收到for循环的影响。至于为啥实例2的t2.i变成了61,是因为第22行有个t1.i++的操作,使静态成员变量的值加了1。
所以除非是定义常量或者静态方法,一般不要使用static修饰符
你还可以试下i去掉static修饰符,运行结果可能又不一样了