关于一道最简单的java入门题,帮帮忙

关于DR JAVA 的问题,求编程大神帮助,在线等,问题很简单_百度知道
关于DR JAVA 的问题,求编程大神帮助,在线等,问题很简单
我有更好的答案
3/0;1,3/0..,2&#47,2&#47,3/2;0;12题的回答是那个区域全红了3题的回答是1304题的回答1&#47
能不能麻烦讲一下怎么做的
2题的话,你去看看那个getpixels的定义,他是返回了一个区域的的点阵,所以如果遍历的话,就是全部变红了。3题是一个2层的循环。4题的话,当i= j=0的话,循环不成立,所以不打印,只有i=1,j=0,才能打印一次,然后i=2,j可以等0,1.。。。5题的话,那个坐标的矩阵定义是height*width,所以具体点的坐标就是x*height+y。
采纳率:91%
来自团队:
5525..问题很简单
能给点解释吗
为您推荐:
其他类似问题
java的相关知识
等待您来回答一道简单的题,帮帮忙,我只对个答案_百度知道
一道简单的题,帮帮忙,我只对个答案
我有更好的答案
采纳率:77%
等待您来回答千里之行 始于足下
欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 1011 人关注过本帖
标题:帮忙做一道数据结构的题目
等 级:新手上路
结帖率:33.33%
&&已结贴√
&&问题点数:10&&回复次数:8&&&
帮忙做一道数据结构的题目
有一群人组成一个圈。从头开始按照顺时针方向从1开始依次报数。报到到9的人就离开圈子。其左手边的人接着从1开始报数。依此进行,直到剩最后一个人为止。
谢谢咯!!!!!!!
搜索更多相关主题的帖子:
提示: 作者被禁止或删除 内容自动屏蔽
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
有点无语哦,在你另外一个帖子里面有一道行酒令的类似题目,那里已经给你做了一个例子,所谓举一反三,要是楼主自己认真看的话,这道题目自己也会做的。问题目只想知道结果,而不去了解为什么这么做,这是很悲哀的一件事情
来 自:广东省汕头市
等 级:蜘蛛侠
帖 子:501
专家分:1084
定义一个数组,类型为bool型。默认为
用循环,被点到的下标进行判断数组的该下标是否为true,如果不是,则将改下标改为
依此类推。。
等 级:新手上路
哦,不好意思啊,我是知道这道题目用数组做出来的具体代码,不过我现在是希望能用链表方法把代码写出来,之前说得不清楚,真是不好意思了。希望高手能用链表来把这道题目的代码写出来,十分感谢了!
提示: 作者被禁止或删除 内容自动屏蔽
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
回复 5楼 一梦钧天
链表结构跟其他的表结构,只是存储方式上的区别,而具体的操作,都是差不多的,因为都实现同一个接口list。
在这道题目上,也就是把arraylist换成linkedlist就行了。
我想楼主你是不是想自己写个链表呢,如果这样的话,这个题目并不是在问约瑟夫环的算法,而是问链表的数据结构。
提示: 作者被禁止或删除 内容自动屏蔽
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
不需要用两个循环,一个就够了程序代码:public static void main(String args[]) {
&&&&&&&&List&Integer& a = new ArrayList&Integer&();
&&&&&&&&for (int i = 1; i &= 500; i++) {
&&&&&&&&&&&&a.add(i);// 把每个小朋友的号码依次放入.
&&&&&&&&int num=0,currentIndex=0;
&&&&&&&&while (a.size() & 1) {
&&&&&&&&&&&&num++;
&&&&&&&&&&&&if(num==3){
&&&&&&&&&&&&&&& a.remove(currentIndex);
&&&&&&&&&&&&&&& currentIndex--;
&&&&&&&&&&&&&&& num=0;
&&&&&&&&&&&&}
&&&&&&&&&&&&currentIndex++;
&&&&&&&&&&&&if(currentIndex&=a.size())
&&&&&&&&&&&&&&& currentIndex=0;
&&&&&&&&System.out.println(&最后一个小朋友的号码是: & + a.get(0));
版权所有,并保留所有权利。
Powered by , Processed in 0.075324 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved97被浏览5562分享邀请回答public class Example {
String str = new String("good");
char[] ch = {'a', 'b', 'c'};
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex, ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
System.out.println("\n" + ex.str);// 输出依然是good
public void change(Example ex, String str, char ch[]) {
System.out.println("同一个对象?" + (str == ex.str));
// 字符串的操作只能是整个替换,所以对外面没有影响
str = "test ok";
// 址传递,指向的是同一个对象,这里改变了方法外面跟着变
ch[0] = 'g';
// 把ex整个替换掉,对外面没有影响
Example temp = new Example();
temp.str = "你猜猜";
ex = temp;
change方法中的ex和str本身都是一个数,只是这个数比较特殊,是地址,根据这个地址能找到实际的对象,str = "test ok";这句话干了什么呢,把"test ok"这个对象(双引号引起来的是字符串,字符串是对象没问题吧)的地址(一个数)赋值给str,然后用str(一个数)就能找到“test ok”这个对象了,整个过程和方法外面的str没半毛钱关系啊,所以外面是啥还是啥。这个ex一样的啊,本身是个数,然后呢这个数还是个地址,根据它能找到实际的对象,在方法里面重新弄个temp对象,然后ex =不就是让ex本身这个数变成temp对象的地址嘛,这个和外面的ex有什么关系?然后ch,没有创建新的对象,你只是把它第一个元素改变了,你说外面的结果不变有鬼啊每次看到这种貌似很基础的题我都有点虚。。。所以哪里有问题还请一定要只出来啊。。。2023 条评论分享收藏感谢收起good and gbc
然后java层面来说下细节:Java语言的参数传递分为两种:按值传递按地址传递这个和其语言基本一致,然后说按值传递的特点和具体适用范围按值传递适用范围:8种基本数据类型(char、byte、short、int、long、float、double、boolean)和String对象特点:在内存中复制一份数据,然后传递复制后的数据到方法体内按地址传递适用范围:除了上面说的,所有在java中的数据类型特点:传递具体对象的地址ps:其实可以说是引用传递,传递的是对象引用的地址这么说,提主的问题就好解决了。我给提主代码写上了注释:public class Example {
// 按值传递
String str = new String("good");
// 按地址传递
char[] ch = { 'a', 'b', 'c' };
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
System.out.print(ex);
public void change(String str, char ch[]) {
// 按照上面的说法,这里的数据是内存中copy的,所以上面打印ex.str的时候,str具体内容没有被修改
str = "test ok";
// 按照上面的说法,这里的数据其实是一个地址(可以想一下c的指针),所以上面打印ex.ch的时候,ch具体内容变化了
ch[0] = 'g';
记住Java语言的参数传递方式和适用类型,那么搞着这种面试题就小Case了。ps:上面既然说到了引用传递,那么引用类型的引用关系强弱( 之前写的引用关系,用词不当,多谢 @didy指出 )还分为四种,(补充:由于没有说的太清楚,好像误导的一部分读者,因为这里说的是扩展,和参数传递没有任何关系,只是我想到了这块,顺便提下,这四种类型只引用强度不同,被GC回收时,生命周期不同),他们是从JDK 1.2版本开始分离出来的,这四种分别为强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference、虚引用(PhantomReference),他们的引用强度关系为:StrongReference&SoftReference & WeakReference & PhantomReference简单的信息可以看下 的说明。另外,这只是一个扩展的内容,对于面试题是上面的题目内容范畴来说,基本不会遇到这个扩展内容,但是个人观点是可以不会,但是必须得知道这个“东西”啊。另外,它们的具体适用范围和使用,还请楼主自己Google或者某度一下,如需继续了解深挖,请继续追问。。呼呼,第一次有人邀我,吃饭去了 (逃--------------------------手机补充下,楼下说String也是按照地址传递,这个的确是对的,之所以我把它归为按值传递,是因为这是一个特殊的对象类型,JVM对它做了手脚,行为上符合按值传递的特性,对,就是这个样。至于什么手脚,端午嗨完电脑说。sleepヾ(?? ?`?)ノ"==================================嗯,String的这个特性是因为String本身是个不可变对象,因为他的数据其实存在一个被final修饰的 char数组里,而不是因为String类被final修饰。因此每次你对String对象的修改,其实都是产生了一个新的String对象(JVM做的手脚,因为final修饰的内容被初始化后无法再次被修改,而String则默认给你搞了个新的对象),这也是为什么在频繁操作字符串的使用推荐使用StringBuffer或者StringBuilder. 然后说传入的问题,因为String传入的引用地址,而且是拷贝的地址副本。其实这个特细归根结底,不仅仅适用在String,也适用在其他的Java对象中。因为挂载的对象的根节点问题。这个说起来比较迷糊。大家先看个例子public class Example {
Point point=new Point(10, 20);
public static void main(String args[]) {
Example e=new Example();
System.out.println(e.point);
e.change(e);
System.out.println(e.point);
public void change(Example e) {
大家觉的这个会报出java.lang.NullPointerException异常吗?应该有,因为这个是传的地址啊,其实这个地址也是拷贝的。但是因为这个地址的特殊性,并没有空指针异常,因为这个地址指向的是一个对象的根节点。接下来再看为什么会发生这种事情?正好回复里也有同学提了下“Java应该是全部Pass By Value”,这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。问题就在这里,当我们传递进来Strng对象,很明显传递的是引用地址的。但是它是存储数据的容器其实是被final 修饰过的char数组,不能被再次修改,而是指向了新的对象实例,但是传递进来的引用原型,没有因此而改变,因为他们自己就是数据的根节点。而对于实例来说, 挂载的是以前的引用地址,实例下的String属性并没有发生改变。但是我们传递整个对象的时候,你会发发现,你如果修改的是对象整体,也是无效的,因为他们就是自己的根节点。但是这个时候却能修改对象上的属性,为什么?因为对象的引用地址没有变,而对象上持有的属性的引用对象变了。其实
String a=""隐含的不就是Strng a=new String("")么(如果常量池没有,那么就生成引得实例对象,有则直接引用过来。。。这算是JVM搞得语法糖么?哈哈。。)。换个角度来想个这个问题,可能就好理解点。其实这个还涉及到一个方法内变量作用域的问题,但是对于新手,我觉得能理解到这个层次就差不多了。。。打字匆忙,言语不是很清晰,有不妥之处还望之处。hi回来了,再次补充下,其实可以看出,抛开什么传值传址,你会发现,方法在无返回值修改对象成功前提都是这个属性挂载在一个对象上,然后由对象去调用“
. ”这个操作去获取其属性(或者方法)。然后你发现八个基本类型有 是搞自己的么?String的骨子里是容器char数组是final,每次substring or replace啥的都不是修改自己,而是生成新的String。然后你使用一个复杂的对象,操作的都是对象持有的具体实例的引用,然哪个复杂对象,不是基于八个基本类型?如果您看完过觉得有所帮助,还请赞一个赞一个,关注一个。。。( 多谢 对String描述错误和对引用关系用词的不当的指正。其实学习就是一个重复改正错误的过程,大家共同进步,再次感谢)看到某个回答,既然人家没有指名是我,我也不说是谁了。在此,我想说String被final修饰的这个锅的确是我的过。一时疏忽,前面didy已经指出,本人答案也已经修正。看到某答案中有一个反射修改String内容,的确才想到,因为反射可以破封装。在提一下,Java里被final修饰过的属性一旦被初始化后不能指向其它对象,但却没有说不能修改该指向对象的本身。而反射正是利用了这一点,没有改向那个char数组的指向对象地址,但却改变了那个地址所存的内容。最后再声明一点:如果发现本人的回答(任何回答)有误,真心希望大家直言指出反驳,本人会尽自己最大努力&能力修改/修正。不出意外,此次最后一次更新本答案。留一个Java的群号:还有一个python的:5312 条评论分享收藏感谢收起查看更多回答

我要回帖

更多关于 java入门 的文章

 

随机推荐