Java Topics
HubJava Collections FrameworkCollections Practice ProgramsComparable vs ComparatorGenericsIteratorArrayListLinkedListStackVectorHashMapHashtableLinkedHashMapTreeMapArrayDequeDeque Double-Ended QueuePriorityQueueHashSetLinkedHashSetTreeSetAdapter PatternBuilder PatternFactory PatternMVC PatternObserver PatternSingleton PatternDynamic ProgrammingGraphHashingHeapLinked List DSAQueue DSARecursionSearching AlgorithmsSorting AlgorithmsStack DSATime ComplexityTreesException Handling Best PracticesCustom ExceptionException Hierarchyfinally BlockException Handlingthrow aur throwstry-catchBuffered StreamsByte StreamsCharacter StreamsDeserializationFile ClassJava NIO New I/OSerializationArrays in JavaArray OperationsArray Practice ProgramsArray Interview QuestionsJagged ArrayMulti-Dimensional ArraysOne Dimensional Arraybreak aur continuedo-while Loopfor Loopif-else StatementsNested Loopsswitch-case Statementwhile LoopJava Compilation ProcessJava ki FeaturesPehla Java ProgramHistory of JavaJava EditionsJava Program StructureJDK, JRE aur JVMJava Kya Hai?Immutable StringsString Class in JavaString Interview QuestionsString MethodsString Practice ProgramsStringBufferStringBuilderComments in JavaData Types in JavaIdentifiers in JavaInput & Output in JavaJava KeywordsOperators in JavaType Casting in JavaVariables in JavaJava Coding Interview QuestionsCollections Interview QuestionsCore Java Interview QuestionsJDBC Interview QuestionsMultithreading Interview QuestionsOOPs Interview QuestionsSpring Framework Interview QuestionsJava 8 Date/Time APIDefault aur Static Methods in InterfaceFunctional InterfaceLambda ExpressionMethod ReferenceOptional ClassStream APIBatch ProcessingCallableStatementJDBC ArchitectureJDBC — Java Database ConnectivityJDBC Practice ProjectsMySQL ConnectionPreparedStatementResultSetStatement InterfaceTransaction ManagementCreating ThreadsDaemon ThreadExecutor FrameworkInter-Thread CommunicationMultithreading Practice ProgramsRunnable InterfaceSynchronizationThread ClassMultithreading IntroductionThread Life CycleThread PriorityJava Cheat SheetImportant Formulas & Key ConceptsImportant Java ProgramsJava Quick RevisionAbstract ClassAbstractionAnonymous ClassClass and ObjectConstructorEncapsulationInheritanceInner ClassInterfaceMethod OverloadingMethod OverridingObject ClassObject CloningObject-Oriented Programming OOPPolymorphismstatic Keywordsuper Keywordthis KeywordWrapper ClassesArray Practice ProgramsBasic Java Practice ProgramsCollection Practice ProgramsJDBC Practice ProgramsMultithreading Practice ProgramsOOPs Practice ProgramsPlacement Coding QuestionsString Practice ProgramsBanking SystemChat ApplicationE-Commerce Backend — Spring Boot REST APIEmployee Management SystemLibrary Management SystemSpring Boot Fullstack ProjectStudent Management SystemCookies in ServletExpression Language ELGenericServletHttpServletJavaServer Pages JSPJSP TagsMVC ArchitectureHttpServletRequest & HttpServletResponseServlet IntroductionServlet Life CycleSession TrackingDependency InjectionSpring BeansSpring CoreSpring FrameworkAPI GatewaySpring Cloud Config ServerDocker DeploymentEureka Server — Service DiscoverySpring Boot CRUD ApplicationException Handling in Spring BootJWT AuthenticationREST API in Spring BootSpring SecuritySpring BootSpring Data JPAValidation in Spring Boot
Functional Interface
Last Updated : 26 May, 2026
title: Functional Interface in Java 8
Java 8 Features40 words5 headingsExamples included
title: Functional Interface in Java 8 description: Functional interfaces aur @FunctionalInterface annotation
Exactly one abstract method wala interface. Lambda expression target type hota hai.
@FunctionalInterface Annotation
java exampleWoHoTech
@FunctionalInterface // Compiler enforce karta hai — 1 se zyada abstract method nahi
interface Greeting {
String greet(String name);
// Default methods allowed
default void sayBye(String name) {
System.out.println("Bye, " + name);
}
// Static methods allowed
static Greeting formal() {
return name -> "Good day, " + name;
}
}
Greeting hindi = name -> "Namaste, " + name + "!";
Greeting english = name -> "Hello, " + name + "!";
System.out.println(hindi.greet("Ram")); // Namaste, Ram!
System.out.println(english.greet("John")); // Hello, John!Built-in Functional Interfaces
Predicate<T>
java exampleWoHoTech
Predicate<String> isEmpty = String::isEmpty;
Predicate<String> isLong = s -> s.length() > 5;
// Compose predicates
Predicate<String> isNonEmptyAndLong = isEmpty.negate().and(isLong);
List<String> words = Arrays.asList("hi", "hello", "java", "programming");
words.stream().filter(isNonEmptyAndLong).forEach(System.out::println);
// hello, programmingFunction<T, R> — Chaining
java exampleWoHoTech
Function<String, String> trim = String::trim;
Function<String, String> upper = String::toUpperCase;
Function<String, Integer> length = String::length;
// andThen: trim → upper → length
Function<String, Integer> combined = trim.andThen(upper).andThen(length);
System.out.println(combined.apply(" hello ")); // 5
// compose: reverse order
Function<Integer, Integer> doubleIt = x -> x * 2;
Function<Integer, Integer> addThree = x -> x + 3;
doubleIt.compose(addThree).apply(5); // addThree(5)=8, doubleIt(8)=16Consumer<T> — Chaining
java exampleWoHoTech
Consumer<String> print = System.out::println;
Consumer<String> upper = s -> System.out.println(s.toUpperCase());
Consumer<String> both = print.andThen(upper);
both.accept("hello");
// hello
// HELLOExam Focus
Revise definitions, diagrams, examples, and short-answer points for Functional Interface.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Java topic.
Search Terms
java, java programming, core java, java master course, java notes, master, course, features
Related Java Topics
Continue learning this concept
Java 8 FeaturesDefault aur Static Methods in Interfacetitle: Default and Static Methods in InterfaceJava 8 FeaturesJava 8 Date/Time APItitle: Date Time API in Java 8Java 8 FeaturesLambda Expressiontitle: Lambda Expression in Java 8Java 8 FeaturesMethod Referencetitle: Method Reference in Java 8Java 8 FeaturesOptional Classtitle: Optional Class in Java 8Java 8 FeaturesStream APItitle: Stream API in Java 8