diff options
Diffstat (limited to 'java.html.markdown')
| -rw-r--r-- | java.html.markdown | 31 | 
1 files changed, 28 insertions, 3 deletions
| diff --git a/java.html.markdown b/java.html.markdown index 6487d862..12de0c73 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -95,6 +95,12 @@ public class LearnJava {          // Byte - 8-bit signed two's complement integer          // (-128 <= byte <= 127)          byte fooByte = 100; +         +        // If you would like to interpret a byte as an unsigned integer +        // then this simple operation can help +        int unsignedIntLessThan256 = 0xff & fooByte; +        // this contrasts a cast which can be negative. +        int signedInt = (int) fooByte;          // Short - 16-bit signed two's complement integer          // (-32,768 <= short <= 32,767) @@ -102,7 +108,7 @@ public class LearnJava {          // Integer - 32-bit signed two's complement integer          // (-2,147,483,648 <= int <= 2,147,483,647) -        int fooInt = 1; +        int bazInt = 1;          // Long - 64-bit signed two's complement integer          // (-9,223,372,036,854,775,808 <= long <= 9,223,372,036,854,775,807) @@ -110,7 +116,9 @@ public class LearnJava {          // L is used to denote that this variable value is of type Long;          // anything without is treated as integer by default. -        // Note: Java has no unsigned types. +        // Note: byte, short, int and long are signed. They can have positive and negative values. +        // There are no unsigned variants. +        // char, however, is 16-bit unsigned.          // Float - Single-precision 32-bit IEEE 754 Floating Point          // 2^-149 <= float <= (2-2^-23) * 2^127 @@ -190,7 +198,20 @@ public class LearnJava {          builderConcatenated.append("the StringBuilder class.");          System.out.println(builderConcatenated.toString()); // only now is the string built           // Output: You can use the StringBuilder class. - +         +        // StringBuilder is efficient when the fully constructed String is not required until the end of some processing. +        StringBuilder stringBuilder = new StringBuilder(); +        String inefficientString = ""; +        for(int i = 0 ; i < 10; i++){ +            stringBuilder.append(i).append(" "); +            inefficientString += i + " "; +        } +        System.out.println(inefficientString); +        System.out.println(stringBuilder.toString()); +        // inefficientString requires a lot more work to produce, as it generates a String on every loop iteration. +        // Simple concatenation with + is compiled to a StringBuilder and toString() +        // Avoid string concatenation in loops. +                  // #3 - with String formatter          // Another alternative way to create strings. Fast and readable.          String.format("%s may prefer %s.", "Or you", "String.format()"); @@ -827,6 +848,10 @@ The links provided here below are just to get an understanding of the topic, fee  * [Java Code Conventions](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html) +* New features in Java 8: +    * [Lambda expressions (functional programming)](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html) +    * [Date and time API (java.time package)](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html) +  **Online Practice and Tutorials**  * [Learneroo.com - Learn Java](http://www.learneroo.com) | 
