我知道这是一个非常基本的问题,但我想明确这个概念.我想知道==运算符在原始类型和对象类型的情况下如何工作.例如
Integer a = 1;
int b = 1;
System.out.println(a == b)
Run Code Online (Sandbox Code Playgroud)
如何a与之比较b,而a包含包含值1的对象的引用.有人可以向我清楚它是如何在内部工作的吗?
我一直在寻找文件系统的Java命名和目录接口(JNDI)服务提供程序.据我所知,Oracle捆绑了仅用于RMI,DNS,LDAP和COS的JDK服务提供商.看起来Sun曾经提供过一个,因为我的Google搜索返回了许多网站和论坛,其中包括Coderanch建议从Sun的JNDI页面下载文件系统SP ,但该页面现在重定向到Java Technetwork的主页面.此外,Oracle的JNDI页面不提供有关文件系统SP的信息,而在Java教程的JNDI路径中,他们建议您从上述JNDI页面下载它,并提供使用它来查找名称的示例.在Oracle的网站上搜索也没有产生任何结果.
我的问题由两部分组成:
1)Sun的JNDI文件系统服务提供商发生了什么,是否仍然可以以某种方式/某处获得其任何版本?
2)他们的任何替代文件系统SP是否为JNDI?
预先感谢您的帮助.
我的问题与Java有关,但它也可以应用于C#.我想知道为什么每个人都建议将实例变量设为私有而不是让它们受到保护.
让我们考虑一下.子类看不到私有变量,所以如果我需要访问或更改子类中超类的变量,我被迫使用一些访问器和mutators方法,如getMyPrivateVariable或setMyPrivateVariable.但是,当您扩展某个类并继承其成员时,这就像您直接在子类中声明它们一样.从逻辑上讲,这意味着子类也应该直接访问实例变量,并为使用受保护变量设计类提供了理由.我理解这种做法会破坏封装,但这在继承的情况下似乎无关紧要,因为在这种情况下,一切都像超级类的成员在sublcass中声明一样,所以sublcass有一个"自然权利"能够直接访问其成员,无论他们是否继承.在我看来,封装对于通过对象的继承树之外的其他对象与对象进行交互更为重要.
所以,我的问题是为什么每个人都建议将类的实例变量声明为私有而不是受保护?
我正在使用Java中的枚举.正如我所看到的,可以重载枚举构造函数.我的问题是,在这种情况下,根本不可能从构造函数重载中获益,因为据我所知,它既不能自己调用也不能强制编译器调用你想要调用的特定代码?
感谢您花时间向我澄清这些内容并希望它对于可能有同样问题的其他人也有用.
我想通过使用乐观锁定来处理并发执行.我@Version在我的实体类中包含了注释.
在我的代码中,我同时运行两个线程.有时它正确执行.有时它是投掷org.eclipse.persistence.exceptions.OptimisticLockException和javax.persistence.OptimisticLockException.
public class StudentCreation implements Runnable {
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("jpaApp");
Student student = null;
@Override
public void run() {
for (int i = 1; i <= 2; i++) {
try {
if (i % 2 == 0) {
update("XYZ");
} else {
update("ABC");
}
} catch (Exception e) {
System.out.println("Update exception");
}
}
}
// main method
public static void main(String ar[]) {
StudentCreation std1 = new StudentCreation();
// creating two threads …Run Code Online (Sandbox Code Playgroud) jpa locking eclipselink optimistic-locking optimistic-concurrency
我有一个函数(被称为writeToCsv:),它将行插入到csv文件中.
我逐行运行该函数.
问题是:我的函数在文件的开头插入行(这就是删除前一行的原因所以我永远不会有多行).
我想知道如何在最后一行之后插入行.
任何帮助赞赏!
var filePath = @"C:\Book1.csv";
// Initialise stream object with file
using (var wr = new StreamWriter(filePath, false, Encoding.UTF8))
{
// Collection of book titles
var row = new List<string>();
// insert Username to Excel
if (userdetails.username != "")
{
row.Add("Username: " + userdetails.username);
}
else
{
row.Add("Username: Unknown");
}
row.Add("");
var sb = new StringBuilder();
foreach (string value in row)
{
// Add a comma before each string
// this adds a comma …Run Code Online (Sandbox Code Playgroud) 下面显示了几种创建字符串的方法.在注释的表达式后面添加问题.
String str = "test";
String str1 = new String(str); //Will it invoke the Constructor of String(String)?
String str2 = new String("test");//Will it invoke the Constructor of String(String)?
String str3 = str; //Which Constructor will it invoke? Or str3 only reference to str and "test" without being constructed?
String str4 = "test";//Which Constructor will it invoke? Or str4 only reference to str and "test" without being constructed?
String strnew = new String("testnew");//Will this expression create "testnew" in String Constant Pool …Run Code Online (Sandbox Code Playgroud) java ×5
c# ×1
constructor ×1
csv ×1
eclipselink ×1
enums ×1
equality ×1
inheritance ×1
jndi ×1
jpa ×1
locking ×1
overloading ×1
private ×1
protected ×1
streamwriter ×1
string ×1
string-pool ×1
unboxing ×1
variables ×1