Convert Figma logo to code with AI

AobingJava logoJavaFamily

【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。

35,916
7,804
35,916
2

Top Related Projects

174,630

:books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计

145,827

「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!

😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识

To Be Top Javaer - Java工程师成神之路

Everything you need to know to get the job.

A complete computer science study plan to become a software engineer.

Quick Overview

JavaFamily is a comprehensive resource repository for Java developers, covering a wide range of topics including Java fundamentals, advanced concepts, frameworks, and industry best practices. It serves as a learning guide and reference for both beginners and experienced developers, offering in-depth articles, tutorials, and code examples.

Pros

  • Extensive coverage of Java-related topics, from basics to advanced concepts
  • Regular updates with new content and industry trends
  • Well-organized structure, making it easy to navigate and find specific information
  • Includes practical examples and real-world scenarios

Cons

  • Primarily in Chinese, which may limit accessibility for non-Chinese speakers
  • Some topics may not be covered in as much depth as specialized resources
  • The vast amount of information can be overwhelming for beginners
  • Occasional inconsistencies in content formatting and presentation

Getting Started

To start using the JavaFamily repository:

  1. Visit the GitHub repository: https://github.com/AobingJava/JavaFamily
  2. Browse the README file for an overview of available topics
  3. Navigate to specific folders or articles based on your interests
  4. Star the repository to stay updated with new content
  5. Consider using a translation tool if you're not fluent in Chinese

Note: This is not a code library, so there are no code examples or installation instructions. The repository serves as a knowledge base and learning resource for Java developers.

Competitor Comparisons

174,630

:books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计

Pros of CS-Notes

  • More comprehensive coverage of computer science topics beyond Java
  • Well-structured and organized content with clear categorization
  • Includes algorithms, data structures, and system design concepts

Cons of CS-Notes

  • Less focus on practical Java development and industry-specific knowledge
  • May lack the latest updates and trends in Java ecosystem
  • Limited coverage of advanced Java topics and frameworks

Code Comparison

CS-Notes example (Binary Search):

public int binarySearch(int[] nums, int target) {
    int left = 0, right = nums.length - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (nums[mid] == target) return mid;
        else if (nums[mid] < target) left = mid + 1;
        else right = mid - 1;
    }
    return -1;
}

JavaFamily example (Thread creation):

public class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
    public static void main(String args[]) {
        MyThread t = new MyThread();
        t.start();
    }
}

Both repositories offer valuable resources for Java developers and computer science enthusiasts. CS-Notes provides a broader range of topics, making it suitable for those preparing for interviews or seeking a comprehensive understanding of computer science concepts. JavaFamily, on the other hand, focuses more on practical Java development and industry-specific knowledge, making it ideal for Java developers looking to enhance their skills in a professional context.

145,827

「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!

Pros of JavaGuide

  • More comprehensive coverage of Java topics, including core Java, frameworks, and best practices
  • Better organized structure with clear categorization of content
  • Regularly updated with new content and improvements

Cons of JavaGuide

  • May be overwhelming for beginners due to the vast amount of information
  • Less focus on practical, real-world scenarios compared to JavaFamily

Code Comparison

JavaGuide example (Singleton pattern):

public class Singleton {
    private static volatile Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}

JavaFamily example (Thread creation):

public class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("MyThread running");
    }
}

MyThread thread = new MyThread();
thread.start();

Both repositories provide valuable resources for Java developers, with JavaGuide offering a more structured and comprehensive approach, while JavaFamily focuses on practical examples and real-world scenarios. The choice between the two depends on the learner's preferences and learning style.

😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识

Pros of advanced-java

  • More focused on advanced Java topics and in-depth technical content
  • Better organized structure with clear categories and subcategories
  • Regularly updated with new content and contributions from the community

Cons of advanced-java

  • Less coverage of broader software development topics beyond Java
  • May be more challenging for beginners due to its advanced nature
  • Fewer practical examples and real-world scenarios compared to JavaFamily

Code Comparison

advanced-java example (Distributed Lock):

public class RedisLock {
    private static final String LOCK_SUCCESS = "OK";
    private static final String SET_IF_NOT_EXIST = "NX";
    private static final String SET_WITH_EXPIRE_TIME = "PX";
    
    public boolean tryLock(String lockKey, String requestId, int expireTime) {
        // Implementation details...
    }
}

JavaFamily example (Thread Pool):

public class ThreadPoolExecutorDemo {
    public static void main(String[] args) {
        ThreadPoolExecutor executor = new ThreadPoolExecutor(
            2, 5, 1L, TimeUnit.SECONDS,
            new LinkedBlockingQueue<>(3),
            Executors.defaultThreadFactory(),
            new ThreadPoolExecutor.AbortPolicy());
        
        // Usage example...
    }
}

Both repositories provide valuable Java-related content, but they cater to slightly different audiences and learning objectives. advanced-java is more suitable for experienced developers looking to deepen their Java expertise, while JavaFamily offers a broader range of topics and may be more accessible to a wider audience.

To Be Top Javaer - Java工程师成神之路

Pros of toBeTopJavaer

  • More comprehensive coverage of Java ecosystem topics
  • Better organized structure with clear categorization
  • Includes practical examples and code snippets for better understanding

Cons of toBeTopJavaer

  • Less frequent updates compared to JavaFamily
  • Fewer contributions from the community
  • Limited focus on advanced topics and cutting-edge technologies

Code Comparison

toBeTopJavaer:

public class Singleton {
    private static volatile Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}

JavaFamily:

public enum Singleton {
    INSTANCE;
    public void doSomething() {
        // Method implementation
    }
}

The code comparison shows different approaches to implementing the Singleton pattern. toBeTopJavaer uses the double-checked locking method, which is more verbose but offers thread-safety and lazy initialization. JavaFamily demonstrates a simpler enum-based implementation, which is concise and inherently thread-safe but eager in initialization.

Both repositories serve as valuable resources for Java developers, with toBeTopJavaer offering a more structured learning path and JavaFamily providing a broader range of topics with more frequent updates.

Everything you need to know to get the job.

Pros of interviews

  • More focused on coding interview preparation with algorithms and data structures
  • Includes solutions in multiple programming languages (Java, Python, C++, etc.)
  • Well-organized with clear categorization of topics

Cons of interviews

  • Less comprehensive coverage of general Java ecosystem topics
  • Lacks in-depth explanations and real-world application examples
  • Not regularly updated, with less frequent contributions

Code Comparison

interviews:

public ListNode reverseList(ListNode head) {
    ListNode prev = null;
    while (head != null) {
        ListNode next = head.next;
        head.next = prev;
        prev = head;
        head = next;
    }
    return prev;
}

JavaFamily:

public class ThreadPoolExecutorDemo {
    public static void main(String[] args) {
        ExecutorService executor = new ThreadPoolExecutor(2, 5,
                60L, TimeUnit.SECONDS,
                new ArrayBlockingQueue<Runnable>(10));
        // ... (usage example)
    }
}

The code snippets demonstrate the different focus areas of each repository. interviews provides algorithm implementations, while JavaFamily offers examples of Java ecosystem features and best practices.

A complete computer science study plan to become a software engineer.

Pros of coding-interview-university

  • Comprehensive coverage of computer science fundamentals and algorithms
  • Well-structured learning path suitable for self-study
  • Extensive resource links for further reading and practice

Cons of coding-interview-university

  • Primarily focused on theoretical concepts, less emphasis on practical coding
  • May be overwhelming for beginners due to its extensive content
  • Less specific to Java compared to JavaFamily

Code Comparison

coding-interview-university:

# Example of binary search implementation
def binary_search(list, item):
    low = 0
    high = len(list) - 1
    while low <= high:
        mid = (low + high) // 2
        guess = list[mid]
        if guess == item:
            return mid
        if guess > item:
            high = mid - 1
        else:
            low = mid + 1
    return None

JavaFamily:

// Example of Java-specific multithreading
public class ThreadExample extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
    public static void main(String args[]) {
        ThreadExample t1 = new ThreadExample();
        t1.start();
    }
}

The code comparison highlights the difference in focus between the two repositories. coding-interview-university provides general algorithm implementations, while JavaFamily emphasizes Java-specific concepts and practical coding examples.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

我会从下图中的知识点去写这个系列,很多细节的点,可能想得不是很完善,大家可以去【公众号】获取或者加我【微信】提意见(别忘记Star哟)。

原创文章每周最少两篇,公众号首发文章,【B站】首发视频,比博客早一到两篇。

微信群 公众号 投稿 公众号 投稿 投稿

目录(善用Ctrl+F)

ps : 没链接的是还没写(耐心等待更哟)

后端面试点合集

脑图在线编辑地址

所有文章pdf版本 : 链接:https://pan.baidu.com/s/1PKO0LDspwJPNqT6qwqNorQ 密码:f654

阿里、字节、快手、腾讯、美团、滴滴内推

ao_bing@foxmail.com

Star History

Star History Chart

祝福

希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。

如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。

敖丙在工作中发现我身边的人真的就是实力越强的越努力,**最高级的自律,享受孤独**。