Tag: java

在Java中,封装私有,公共,受保护和私有之间的区别

在Java中,在制定class和interface以及处理inheritance时,是否明确规定何时使用每个访问修饰符,即默认(package private), public , protected和private ?

如何将Oracle的Java设置为Ubuntu中的默认Java?

如何在Ubuntu中将JAVA_HOME的值更改为Oracle的Java? 应该指向java-6-sun或java-6-sun-1.6.0.24吗?

Android Studio需要用于Android-L mac的JDK 7

我试图看看我的应用程序在材料devise中的外观,我想使用新的卡片库。 我的问题是,它在我的gradle文件中给我这个错误,我需要修复这个问题。 Error:compileSdkVersion android-L requires compiling with JDK 7 我下载了jdk-7u60-macosx-x64.dmg并安装了它。 在terminal中的java -version显示我1.7安装: java version "1.7.0_60" Java(TM) SE Runtime Environment (build 1.7.0_60-b19) Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode) 好 ls -l `which java` 给我: /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java …/current/…没有…/home 。 我在这里find了…/home : /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 并将path设置为Android Studio中“JDK位置”下的“SDK位置”首选项。 但它不工作 – 它似乎仍然无法findJDK 7。 我正在使用Mac OSX 10.9.3和Android Studio(Beta)0.8.1。

我应该如何复制Java中的string?

String s = "hello"; String backup_of_s = s; s = "bye"; 在这一点上,备份variables仍然包含原来的值“你好”(这是因为string的不变性权利?)。 但是用这种方法复制string是非常安全的 (复制常规的可变对象当然是不安全的),还是写这个更好? : String s = "hello"; String backup_of_s = new String(s); s = "bye"; 换句话说,这两个片段之间有什么区别(如果有的话)? 编辑 – 为什么第一个片段是安全的: 基于已经提供的良好答案(本质上集中在两个片段之间的性能差异问题上),让我稍微详细地解释一下: string在Java中是不可变的,这意味着一个String对象在构造之后不能被修改。 因此, String s = "hello"; 创build一个新的String实例并将其地址分配给s ( s是对实例/对象的引用) String backup_of_s = s; 创build一个新的variablesbackup_of_s并初始化它,以便它引用s当前引用的对象。 注意:string不可变性保证这个对象不会被修改:我们的备份是安全的 注2:Java垃圾收集机制保证只要至less有一个variables被引用,这个对象就不会被销毁(在本例中为backup_of_s ) 最后, s = "bye"; 创build另一个String实例(由于不变性,这是唯一的方法),并修改svariables,以便它现在引用新的对象。

Java项目的构build和版本编号(ant,cvs,hudson)

Java项目中系统构build编号和版本号pipe理的最佳实践是什么? 特别: 如何在分布式开发环境中系统地pipe理版本号 如何维护源代码中的版本号/可用于运行时应用程序 如何正确整合源代码库 如何更自动地pipe理版本号与版本库标签 如何与持续build设基础设施整合 有相当多的工具可用,ant(我们正在使用的构build系统)有一个任务将维护内部版本号,但是不清楚如何使用CVS,svn或类似的并发开发人员来pipe理这个工作。 [编辑] 下面出现了一些好的和有帮助的部分或特定的答案,所以我将总结其中的一些。 这听起来似乎没有一个强有力的“最佳实践”,而是一堆重叠的想法。 下面,find我的总结和一些人们可能试图回答作为后续问题的结果问题。 [新来stackoverflow …请提供意见,如果我做错了。] 如果您使用的是SVN,那么特定的结帐版本会随之而来。 内部编号可以利用这个来创build一个唯一的内部编号来标识特定的检出/修改。 [CVS,我们正在使用的遗留原因,并没有提供相当的这种水平的洞察力…手动干预与标签让你分开的方式。] 如果您使用maven作为您的构build系统,则支持从SCM生成版本号以及用于自动生成版本的发布模块。 [我们不能使用maven,由于各种原因,但这有助于那些谁可以。 [感谢marcelo-morales ]] 如果您使用ant作为构build系统,以下任务描述可以帮助您生成一个捕获构build信息的Java .properties文件,然后可以通过多种方式将其折叠到您的构build中。 [我们扩大了这个想法,包括哈德森派生的信息,感谢烈士羊肉 ]。 Ant和maven(以及hudson和巡航控件)为将内部版本号获取到.properties文件或者在.txt / .html文件中提供了简单的方法。 这是否“安全”足以防止有意或无意地被篡改? 在编译时将它编译成“版本控制”类更好吗? 声明:构build编号应该在像哈德森这样的持续集成系统中定义/制定。 [感谢marcelo-morales ]我们已经采取了这个build议,但它确实打开了发布工程的问题:发布如何发生? 发行版中是否有多个buildnumbers? 不同版本的buildnumbers之间是否有意义的关系? 问题:内部编号背后的目标是什么? 是否用于质量检查? 怎么样? 主要是由开发人员在开发过程中为多个构build之间消除歧义,或者更多地使用QA来确定最终用户构build的是什么? 如果目标是可重复的,理论上这是一个发行版本号应该提供的 – 为什么不呢? (请回答下面的答案,这将有助于说明你所做的/build议的select…) 问题:在手动构build中是否有构build数字的地方? 这是否有问题,每个人都应该使用CI解决scheme? 问题:应该build立数字签入SCM? 如果目标是可靠和明确地识别特定的构build,如何应对各种连续或手动构build系统,可能会崩溃/重新启动/等… 问题:一个内部版本号应该简短而又甜美(即单调递增的整数),以便易于使用文件名进行存档,易于在通信中引用等等,或者是否应该是很长且充满用户名的,date,机器名称等? 问题:请提供有关如何将内部版本号分配到较大的自动发布stream程中的详细信息。 是的,maven爱好者,我们知道这已经完成了,但是我们并不是所有人都已经喝醉了… 我真的希望把这个完整的回答,至less对于我们的cvs / ant / hudson设置的具体例子来说,有人可以根据这个问题来构build一个完整的策略。 […]

在Java中使用ByteBuffer有什么用?

什么是Java中的ByteBuffer示例应用程序? 请列出使用这个的任何示例场景。 谢谢!

Spring Security中angular色与授权的区别

Spring Security中有一些概念和实现,例如GrantedAuthority接口来获得授权/控制访问的权限。 我想这样做允许的操作,如createSubUsers或deleteAccounts ,我将允许pipe理员 (与angular色ROLE_ADMIN )。 我感到困惑,因为我在网上看到的教程/演示。 我试图把我读到的东西联系起来,但是我认为我们可以互相交换。 我看到hasRole消耗GrantedAuthoritystring? 我绝对是在理解上做错了。 Spring Security在概念上是什么? 我如何存储用户angular色,与angular色权限分开? 我也正在寻找org.springframework.security.core.userdetails.UserDetails接口,该接口用于身份validation提供程序引用的DAO,它使用一个User (注意最后一个GrantedAuthority): public User(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) 还是有其他的方法来区分另外两个? 还是不支持,我们必须做我们自己的?

如何切换到Intellij中的另一个Subversion分支?

在IntelliJ中切换分支的概念是什么? 我必须是盲人或白痴 我会假设会有一个“切换到复制”选项或类似的东西,但没有… 编辑澄清:我prev IDE有一个简单的“切换到复制”选项,它更新所有文件不同于当前分支/树干。 IntelliJ似乎有一个完全不同的方法来做到这一点,我似乎不明白。 帮助也不是很有用。 非常感谢有用的关键字,链接或提示。 谢谢。

我如何让我的Maven集成testing运行

我有一个maven2多模块项目,并在我的每个子模块中,我有Test.javatesting和集成testing命名为Test.java和Integration.java JUnittesting。 当我执行时: mvn test 子模块内的所有JUnittesting*Test.java被执行。 当我执行 mvn test -Dtest=**/*Integration 没有一个Integration.javatesting在子模块中得到执行。 这些对我来说似乎是完全一样的命令,但是带有-Dtest = / * Integration **的那个不起作用,它显示了在父级别运行的0个testing,没有任何testing

用于读取资源文本文件到string(Java)

有没有任何工具可以帮助将资源中的文本文件读取到string中。 我想这是一个stream行的要求,但我没有find谷歌search后的任何效用。