Java-Gaming.org Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (756)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (842)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Passing strings around  (Read 5349 times)
0 Members and 1 Guest are viewing this topic.
Offline trollwarrior1
« Posted 2014-10-22 19:07:41 »

I'm making kinda custom simple object language (Almost like XML, but it is mainly for writing UI, so I will not need any 'special' character handling and stuff).

I'm starting to write the parser, and I don't know if I should pass the input string around methods. Does passing string around methods copy it? So for example if I pass string A from method B to method C, does string A stay as it is, or does it get copied and become a new string?
Offline BurntPizza

« JGO Bitwise Duke »


Medals: 485
Exp: 7 years



« Reply #1 - Posted 2014-10-22 19:09:45 »

Does passing any object type copy it?

No.


Note however that Java is pass-by-value: http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value
Just not the way that might be immediately obvious.
Offline trollwarrior1
« Reply #2 - Posted 2014-10-22 19:12:33 »

Well I just thought that strings might have some magical properties like int or boolean or any other primitive. Ow well.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline BurntPizza

« JGO Bitwise Duke »


Medals: 485
Exp: 7 years



« Reply #3 - Posted 2014-10-22 19:15:40 »

They can have the interesting properties of being interned and/or de-duplicated. Look up "string interning" or deduplication for more.
Also note that they are immutable, so "modifying" a string is creating a new string. Except that substring used to create a "view" string. It does not anymore though.

For more info: http://java-performance.info/changes-to-string-java-1-7-0_06/
Offline KevinWorkman

« JGO Plugged Duke »


Medals: 283
Projects: 12
Exp: 12 years


HappyCoding.io - Coding Tutorials!


« Reply #4 - Posted 2014-10-23 01:16:31 »

Does passing string around methods copy it? So for example if I pass string A from method B to method C, does string A stay as it is, or does it get copied and become a new string?

Why don't you just write a little example program that tests this out?

I just thought that strings might have some magical properties like int or boolean or any other primitive.

Strings aren't primitives. They are immutable Objects.

HappyCoding.io - Coding Tutorials!
Happy Coding forum - Come say hello!
Pages: [1]
  ignore  |  Print  
 
 

 
DesertCoockie (53 views)
2018-05-13 18:23:11

nelsongames (84 views)
2018-04-24 18:15:36

nelsongames (75 views)
2018-04-24 18:14:32

ivj94 (760 views)
2018-03-24 14:47:39

ivj94 (88 views)
2018-03-24 14:46:31

ivj94 (644 views)
2018-03-24 14:43:53

Solater (103 views)
2018-03-17 05:04:08

nelsongames (185 views)
2018-03-05 17:56:34

Gornova (427 views)
2018-03-02 22:15:33

buddyBro (1087 views)
2018-02-28 16:59:18
Java Gaming Resources
by philfrei
2017-12-05 19:38:37

Java Gaming Resources
by philfrei
2017-12-05 19:37:39

Java Gaming Resources
by philfrei
2017-12-05 19:36:10

Java Gaming Resources
by philfrei
2017-12-05 19:33:10

List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!