Thinking in Java
文章平均质量分 69
wangbingfeng0
I'm back
展开
-
type information - Using Class Literals
previous articleIf we reimplement PetCreator using lcass literals, the result is cleaner in many ways:// typeinfo/pets/LiteralPetCreator.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.//原创 2020-12-30 23:56:12 · 220 阅读 · 0 评论 -
Mac Atom - Could not determine java version from '11.0.1'
when run./gradlew :typeinfo:Shapesthe terminal prompt:FAILURE: Build failed with an exception.* What went wrong:Could not determine java version from '11.0.1'.* Try:Run with --stacktra...原创 2019-12-31 23:58:11 · 767 阅读 · 0 评论 -
understanding the difference between null and '\u0000' in java
public class MyClass { public static void main(String args[]) { char c = '\u000'; // [1] System.out.println("\u000:" + c); }}above code jdk is 1.8 or above 1.8.[1]'s error...原创 2019-10-22 23:06:20 · 352 阅读 · 0 评论 -
type information - Checking Before a Cast
In C++, the classic cast "(Shape)" does not perform RTTI (Runtime type information, discovers and uses type information while a program is running). It simply tells the compiler to treat the object a...原创 2019-10-02 23:15:21 · 200 阅读 · 0 评论 -
type information - The cast() Method
/** * Casts an object to the class or interface represented * by this {@code Class} object. * * @param obj the object to be cast * @return the object after casting, or nu...原创 2019-10-01 17:04:31 · 187 阅读 · 0 评论 -
type information - Generic Class Syntax
The benefit of Class<?> is it indicates we aren’t just using a non-specific class reference by accident, or out of ignorance.The reason for adding the generic syntax to Class references is onl...原创 2019-08-19 00:14:46 · 205 阅读 · 0 评论 -
type information - Generic Class References
A Class reference points to a Class object, which manufactures instances of classes and contains all the method code for those instances. It also contains the statics for that class. So a Class refere...原创 2019-07-21 23:41:20 · 147 阅读 · 0 评论 -
type information - Class Literals :a second way to produce the reference to the Class object
Class LIteral, likeFacyToy.classsimler safer since it's checked at compile time (and thus does not have to be placed in a try block). more efficient because it eliminates the forName() method ca...原创 2019-07-21 23:23:10 · 132 阅读 · 0 评论 -
type information - The Class Object
The class loader first checks to see if the Class Object for that type is loaded. If not, the default class loader finds the .class file with that name (an add-on class loader might, for example, look...原创 2019-07-02 23:13:41 · 148 阅读 · 0 评论 -
type information - The Need for RTTI
RTTI: Runtime type information, discovers and uses type information while a program is running.It has two forms:assumes we have all the types available at compile time the reflection mechanism, ...原创 2019-06-24 22:57:38 · 147 阅读 · 0 评论 -
strings - Scanner Delimiters
By default, a Scanner splits input tokens along whitespace, but we can also specify our own delimiter pattern in the form of a regular expression.example 1:// strings/ScannerDelimiter.java// (c)...原创 2019-06-23 23:30:46 · 102 阅读 · 0 评论 -
strings - Inspired by Unix’s grep
readAllLinespublic staticList<String>readAllLines(Pathpath) throws IOExceptionRead all lines from a file. Bytes from the file are decoded into characters...原创 2019-06-12 00:26:38 · 148 阅读 · 0 评论 -
strings - split(), Replace Operations
splitpublicString[]split(CharSequenceinput, intlimit)Splits the given input sequence around matches of this pattern.The array returned by this method contains each sub...原创 2019-06-04 21:07:24 · 145 阅读 · 0 评论 -
strings - Pattern 9 Flags
Modifier and Type Constant Field Value publicstaticfinalint CANON_EQ 128 publicstaticfinalint CASE_INSENSITIVE 2 publicstaticfinalint COMMENTS 4 publicstatic...原创 2019-05-29 23:26:48 · 188 阅读 · 0 评论 -
strings - Macher - start() and end() and related methods
startpublicintstart()Returns the start index of the previous match.Specified by:startin interfaceMatchResultReturns:The index of the first character matchedThrows:IllegalStateExce...原创 2019-05-20 23:37:29 · 168 阅读 · 0 评论 -
strings - final class Matcher's Groups
Groups are regular expressions set off by parentheses that can be called up later with their group number. Group 0 indicates the whole expression match, group 1 is the first parenthesized group, etc. ...原创 2019-05-15 23:45:04 · 121 阅读 · 0 评论 -
strings - Pattern and Matcher
A simple example for use Pattern and Matcher// strings/TestRegularExpression.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visi...原创 2019-05-13 23:23:08 · 95 阅读 · 0 评论 -
strings - Quantifiers
Quantifiersallow you to specify the number of occurrences to match against. For convenience, the three sections of the Pattern API specification describing greedy, reluctant, and possessive quantifie...原创 2019-05-09 23:28:01 · 125 阅读 · 0 评论 -
strings - Creating Regular Expressions
[ ^abc ] Any character except a, b, or c (negation)[ abc [ hij ] ] Any of a, b, c, h, i, j (same as a|b|c|h|i|j) (union)[ a-z && [ hij ] ] Either h, i, or j (inte...原创 2019-05-08 23:40:54 · 127 阅读 · 0 评论 -
strings - Regular Expressions - Basics
In Java, \\ means "I'm inserting a regular expression backslash, so the following character has special meaning." To insert a literal backslash, we say \\\.// strings/IntegerMatch.java// (c)2017 M...原创 2019-05-04 23:44:18 · 178 阅读 · 0 评论 -
strings - String.format()
Java 5 also took a cue from C's sprintf(), which is used to create Strings. String.format() is a static method which takes all the same arguments as Formatters format() but returns a String. It can c...原创 2019-05-03 18:59:44 · 286 阅读 · 0 评论 -
strings - Formatter Conversions
Format String SyntaxEvery method which produces formatted output requires aformat stringand anargument list. The format string is aStringwhich may contain fixed text and one or more embeddedfo...原创 2019-05-03 18:33:33 · 186 阅读 · 0 评论 -
strings - Formatting Output
One of the long-awaited features that finally appeared in Java 5 is output formatting in the style of C’s printf() statement. Not only does this allowfor simplified output code, but it also gives Jav...原创 2019-05-03 16:02:39 · 187 阅读 · 0 评论 -
strings - Unintended Recursion
// strings/InfiniteRecursion.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information....原创 2019-05-03 14:45:05 · 129 阅读 · 0 评论 -
Strings - Overloading + vs. StringBuilder
// strings/Concatenation.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.public...原创 2019-04-30 23:40:23 · 89 阅读 · 0 评论 -
files - Reading & Writing Files
// files/ListOfLines.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.import jav...原创 2019-04-29 23:42:53 · 156 阅读 · 0 评论 -
files - Finding Files, PathMacher
// files/Find.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.// {ExcludeFrom...原创 2019-04-27 15:39:20 · 175 阅读 · 0 评论 -
files - Watching a Path
A watchService enables we to set up a process that reacts to changes within a directory.That is, itwatchesregistered objects for changes and events. For example a file manager may use a watch servi...原创 2019-04-23 23:15:34 · 192 阅读 · 0 评论 -
files - File Systems
Two methods find out the rest of the information about the file system.get the "default" file system using static FileSystems utility call getFileSystem() on a Path object to get the file system th...原创 2019-04-23 22:39:25 · 233 阅读 · 0 评论 -
files - Directories
The Files utility class contains most of the operations we'll need for directory and file manipulation. For some reason, however, they did not include a tool to delete directory trees, so here we crea...原创 2019-04-22 22:59:09 · 229 阅读 · 0 评论 -
files - Adding and Subtracting Paths
We must be able to construct Path objects by adding and subtracting pieces to our Path. To subtract the base of a Path we use relativize() and to add pieces at the end of a Path we use resolve() (not ...原创 2019-04-17 23:42:59 · 138 阅读 · 0 评论 -
files - Analyzing a Path
Final class java.nio.file.Filesconsists exclusively of static methods that operate on files, directories, or other types of files.In most cases, the methods defined here will delegate to the associ...原创 2019-04-16 18:55:58 · 200 阅读 · 0 评论 -
files - Selecting Pieces of a Path
java.nio.file, n now means "non-blocking".Path objects can easily yield parts of their path:// files/PartsOfPaths.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that th...原创 2019-04-07 20:16:39 · 83 阅读 · 0 评论 -
validating - Introducing JMH
It's impossible to write JMH code to run it from the command line, but recommended approach is to let the JMH system run the tests for we.JMH attempts to make benchmarks as easy as possible.// v...原创 2019-04-06 11:25:07 · 162 阅读 · 0 评论 -
validating - Microbenchmarking
Benchmarking means timing pieces of code or algorithms to see which runs faster.// onjava/Timer.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for an...原创 2019-04-05 22:27:56 · 342 阅读 · 0 评论 -
validating - Debugging with JDB
The Java Debugger (JDB) is a command-line tool that ships with the JDK. JDB is at least conceptually a descendant of the Gnu Debugger (GDB, which was inspired by the original Unix DB), in terms of the...原创 2019-04-05 21:24:45 · 157 阅读 · 0 评论 -
validating - Logging
SLF4J() provides multiple levels of reporting. Below example shows them all, in increasing order of "seriousness":// validating/SLF4JLevels.java// (c)2017 MindView LLC: see Copyright.txt// We mak...原创 2019-04-01 21:19:41 · 129 阅读 · 0 评论 -
validating - Test-Driven Development
The premise of Test-Driven Development(TDD) is that if we design and write our code with testing in mind, we not only create testable code, it will also be better designed. In general, this seems to h...原创 2019-03-31 23:13:47 · 147 阅读 · 0 评论 -
validating - Using Guava Preconditions
Java disables assertions by default, it's usually better to use a different library that's always validating method arguments.Google's Guava library incorporates a nice set of precondition tests tha...原创 2019-03-31 20:05:23 · 98 阅读 · 0 评论 -
validating - DBC + Unit Testing
DBC: Design by Contract.For exampleWe make 6 contractual definitons for the queue:Precondition (for a put()): Null elements are not allowed to be added to the queue. Precondition (for a put()):...原创 2019-03-30 22:12:57 · 129 阅读 · 0 评论