Methods should be short, from 1 to 7 lines of code, maximum 10 in some cases (with the exception of some algorithms). Because a method does just one thing its name should describe it precisely. But it should not contain implementation details (like data types). The name of the method is the “what” and the implementation is the “how”. Try to avoid implementation details in the name.
When you find yourself using the words “and/or” in your methods names, consider that you might be exposing too many implementation details and try to search for a better name.

Sometimes, people new to this kind of modularity end up creating methods that are not necessary:

private boolean checkIfCharsAreEqual(char[] wordArray,int first_char, int second_char) {
  if (wordArray[first_char] != wordArray[second_char]){
	return false;
  }else{
	return true;
  }
}

This method does not add any clarity to the code. Moreover boolean methods can just return the condition:

private boolean checkIfCharsAreEqual(char[] wordArray,int first_char, int second_char) {
  return (wordArray[first_char] != wordArray[second_char]);
}

There is no need for the “if-else” block when the result of the condition is the return value of the function/method. Even after this change, the method does not make sense. Try to “inline” the method to see whether the code invoking it reads equally good.

When conditionals contains more than one boolean expression (using logic operators AND/OR) then I usually prefer to extract a method so that the reader doesn’t have to think, just read and understand:

// before:
if (someCondition(arg1) && !someOtherCondition(arg2))

// after:
if (isSomeCaseWithProperName(arg1, arg2))

When methods are boolean, try to name them so that they read well preceded by the “if” keyword. I like using the prefixes “is” and “are” or “areThere” for boolean methods operating on single variables and collections respectively.

When the new method is just an alias of another method, consider whether adding it adds any value in terms of readability:

result = someVar.toUpperCase(); // is good/clear enough

// Whilst this method does not make sense:
public String convertToUpper(String input){
    return input.toUpperCase();
}

// And this method does not bring value:
private void addWordToList(List palindromes, String word) {
	palindromes.add(wordToBeChecked);
}

// And this method does not bring any value:
public boolean stringContainsAtLeastOneSpace(String input) {
    if (input.contains(" ")){
	return true;
    }
    return false;
}

Also notice that the prefix “string” in the method name is redundant because the parameter is a string. In the case of methods with one or two arguments, consider using names for the arguments that read well together with the method name:

public User findBy(int phoneNumber){
  ...
};