It's good that Arasa, who was a part-time worker for eight years after dropping out of college, was able to change jobs to an engineer, but I didn't know right or left, so I tried hard to get Java Silver, but I'm stuck here.
First of all, I have little knowledge of Java. On the contrary, it can be said that he does not have much knowledge of programming in general. I used to play with C language as a hobby and class when I was a student, and recently I studied Python3 with Web teaching materials! It is an amateur who can get a lot of attention.
So, when it comes to Java qualifications, it seems that demand is simply high. That's all. Doesn't it seem to be suitable for object-oriented programming? I only have the impression.
I'm going to write for myself almost what I've been studying until I passed Java Silver. If you have any mistakes, please let me know for my future.
For the time being, when I bought an introductory book on Java and studied it, I immediately came across something interesting. Because the String type is a reference type, for example
StrTest.java
public class StrTest {
public static void main(String args[]) {
String str1 = "hoge";
String str2 = "ho";
str2 += "ge";
System.out.println(str1 == str2);
}
}
Is false
, so when comparing strings
StrTest.java
public class StrTest {
public static void main(String args[]) {
String str1 = "hoge";
String str2 = "ho";
str2 += "ge";
System.out.println(str1.equals(str2));
}
}
Use ʻequals () `like
And that. I was so excited that I wrote this code as a trial.
StrTest.java
public class StrTest {
public static void main(String args[]) {
String str = "hoge";
StrChange(str);
System.out.println(str);
}
public static void StrChange(String str){
str = "fuga";
}
}
The output should now be fuga
. Because it's a reference type.
If you execute it with that in mind, the output will be hoge
. Hey? ??
It was a question at all, so when I cried to Google teacher, the explanation came out firmly. Thank you to all the senior engineers.
https://qiita.com/chihiro/items/d3d9a028cd5dd8e84649
Apparently, the String type instance is immutable, so you can't change the value in the first place. I can't change the value ...? ?? ??
StrTest.java
public class StrTest {
public static void main(String args[]) {
String str = "hoge";
System.out.println(str); // hoge
str += "hoge";
System.out.println(str); // hogehoge
str = "fuga";
System.out.println(str); // fuga
}
}
It has changed a lot! !! Why can I change the value even though it is immutable? Why can't it be changed in the previous code?
I became unconscious before and after, so when I cried to Google teacher, the explanation came out firmly. Thank you to all the senior engineers.
https://freelance-jak.com/technology/java/1204/
It seems that the value is being changed, and in fact it is being recreated as a new value in a new area. So definitely the String type seems to be immutable. The code I wrote earlier just means that a new character string was just bombed by some method.
Recommended Posts