On Thu, 9 Jan 2003, Stephan Michels wrote: > > > > On 9 Jan 2003 [EMAIL PROTECTED] wrote: > > > giacomo 2003/01/09 06:35:25 > > > > Modified: src/scratchpad/src/org/apache/cocoon/components/source/impl > > SlideSource.java > > Log: > > make some method package protected instead of privat to increase performance by >avoiding 'access emulated by a synthetic accessor method' (objected by eclipse) > > > > > Hmm, do really think that using package protected modifiers instead of > private modifiers make the implementation faster. For some time I read > an article, which says the private modifier make the fastest access > possible.
You can prove that by yourself using the following code: public class A { private int a; public A() { AA aa = new AA(); } private int foo( AA a ) { AA b = a; return 0; } public class AA { public AA() { int b = a; } public void b() { foo( this ); } } } Compile this and produce an assembly listing (javap -c A). Now, remove the private modifier from the 'int a' as well as from method foo to make it package protected. If you compare these assably listing you'll see what java does with it. Access to the private variable 'a' as well as to the private method 'foo' from within the inner class is indirected by use of a synthetic accessor method. Giacomo > > The assumption that the access is fast is only valid, if have accessor > methods like that > > class MyClass > { > private String text; > > public getText() > { > return text; > } > } > > class MyClass2 > { > String text; > } > > MyClass2.text ist faster than MyClass.getText > > In the case of SlideSource.java, you don't have accessor methods. > And if you are a friend of defensive programming, you will > always working with private member variables, and use > accessor methods instead. > > Thank you for your effort, but I doesn't think this is a good idea :-/ > > Stephan Michels. > > _______________________________________________________________________ > Stephan Michels EMail: [EMAIL PROTECTED] > ICQ: 115535699 Tel: +49-030-314-21583 > ----+----|----+----|----+----|----+----|----+----|----+----|----+----|-| > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]