今天看了自己做的学生管理系统,发现自己硬是有面向过程编程的程序,反思后,反问自己,为什么java在编程时要new对象,而不直接用static
就算你是 static 也是需要 new 的。而且如果把所有的属性都变为 static 的话,会把类让类加载过程变得很慢,让类变得很臃肿。而且你遇到的场景特别的简单,所以可以将全局共享同一个属性,但是如果在并发情况下,如果所有线程共享一个属性,那么就会出问题。
就比如学生管理系统里面肯定有 Student 的吧,如果你的 Student 中所有的属性都是 static 的话,那么所有的线程都会修改同一个类,就会产生不能预料的结果,所以不是所有的属性都可以设置为 static。
你能产生这种想法,根本的原因就是业务场景简单、没有思考过并发情况。
。。。。
真不知道老铁你怎么做完你这个学生管理系统的;
假设学生的姓名属性是static field,通过静态方法设置姓名,第一个叫张三,第二个叫李四,你再去看张三那个对象,他姓名还是张三嘛?
不考虑业务问题,你的想法也是不可行的
一个在堆空间,一个在栈空间,静态变量存储在栈空间,程序的栈空间是有限的,堆空间要大得多,而且堆有自动回收机制
反问一个问题:为什么Java是面向对象的语言?
学生管理系统,你全弄静态的,那你怎么同时存在两个学生的信息呢
不懂,为什么不直接let声明一个数组,后端没数据就自己在数组里写几个对象,调用对象里的值显示到页面上,后端有数据,获取后端实时数据替换前端声明的数组,什么static啥的用getElementsByClassName直接获取class就能修改DOM,或者用getElementById,其余的无非多写几个function然后根据情况调用