java基础

唐僧经常不洗头 2016-09-14 07:43:28
public class Test {
int con=1;
con=con+1;
}
哪个大神解释一下,为什么在类里面不能直接进行逻辑运算,而是必须在方法里面?
...全文
198 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
WeirdPerson 2016-09-17
  • 打赏
  • 举报
回复
引用 11 楼 yelangshisan的回复:
[quote=引用 7 楼 WeirdPerson 的回复:] 关于java 中内存的分配你能给我详细讲讲吗,比如说基本数据类型 在内存中是如何分配的
而java数据是如何分配在内存的,有两种办法。 1。你直接去问那个开发java虚拟机的人。他肯定知道。 2。有种技术叫做代码重定位。可以看到数据到底分配在那块内存空间里。不过要有高深的汇编技术。我没有。所以我也不知道怎么去看。但你可以查查代码重定位这个知识。一般是用来做病毒的。你肯定感兴趣,
WeirdPerson 2016-09-17
  • 打赏
  • 举报
回复
先告诉你什么是内存吧。从硬件方面说,内存是RAM<随机存取器>。它是已电容充电的形式保存数据的。它必须持续充电才能保存数据,就像你运行一个程序时。把电脑的电源拔了。断了电,他里面的数据就全没了!它的硬件的存储技术与在外存储器的不同,所以外存储器可以永久保存数据,但他不可以。从硬件方面讲。RAM是不分什么数据段和代码段的。都是已连续的电子原件存储数据的。而所谓的代码块或数据块都是由操作系统或内存管理器划分出的不同内存空间,去实现不同的功能。java中的八个基本数据类型是在块固定的内存空间声明一个多大的容量。而这个容量里面的值是不固定的。所以称之为变量。而变量名就相当于这个容量的地址。而对象类型我表达的能力有限。说不清楚。你自己看书。
  • 打赏
  • 举报
回复
[quote=引用 7 楼 WeirdPerson 的回复:] 关于java 中内存的分配你能给我详细讲讲吗,比如说基本数据类型 在内存中是如何分配的
java竹雨 2016-09-14
  • 打赏
  • 举报
回复
你去看看 方法和属性
jinancf 2016-09-14
  • 打赏
  • 举报
回复
这样就行了: public class Test { static int con=1; static {con=con+1;} }
自由自在_Yu 2016-09-14
  • 打赏
  • 举报
回复
XxiaoxiaoL 2016-09-14
  • 打赏
  • 举报
回复
语法规定!!!
科比请留步 2016-09-14
  • 打赏
  • 举报
回复
请尊重面向对象的语法
杜蕾斯的悲伤 2016-09-14
  • 打赏
  • 举报
回复
我来打个比方,假如你进家门,没有门你能进入吗?main方法就是程序得入口
nai598455803 2016-09-14
  • 打赏
  • 举报
回复
下班了。。。。。。。。。。。
WeirdPerson 2016-09-14
  • 打赏
  • 举报
回复
public class test { public static int a; public int b; public static void main(String[] agrs) { test t1 = new test(); test t2 = new test(); t1.a = 1; t2.a = 2; t1.b = 3; t2.b = 4; system.out.println(t1.a + " " t2.a); system.out.println(t1.b + " " t2.b); } } 第一个输出结果都是 2 第二个输出结果是 3和4 你明白为什么的话就说明你懂了
c0ol123 2016-09-14
  • 打赏
  • 举报
回复
java就是这么规定的,我给你打个比方,class类是一个对象,而类中的方法,相当于对象所具备的能力,你要进行运算,运算就相当于对象所具备的技能,也就是方法,所以进行运算的时候要在方法里面进行。
WeirdPerson 2016-09-14
  • 打赏
  • 举报
回复
其实你这个问题问的还是很有水平的。这涉及低层jdk工作原理知识!和内存地址空间的问题。这么跟你说。如果在类里面声明一个变量如果没有static这个修饰符的话就代表实例变量。如果不创建这个类的具体对象的话jdk是不会给他赋予一个内存空间的。如果加了static这个修饰符。在jdk编译这个类时会直接分配一个固定的内存空间给它。所以加了static修饰符的方法或则变量。可以不用去new一个对象后再调用他。要知道。jdk在编译文件时。会给数据类型和方法分配在不同的内存块里面。一个是专门存放数据的,一个专门存放指令的。数据类型存放在数据库块。方法存放在指令块。就相当于汇编程序的代码段和数据段一样。你的表达式直接写在类里面。不给个内存空间加载它怎么行。像6楼写的一样。static{i=i+1;}。是申明了一个固定的内存空间加载这个指令。只是没有具体的指针指向这个空间而已。 关于内存空间发段代码给你看。 如果你能明白为什么就说明你知道了。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧