一、语言特点
Java是一种面向对象的、健壮、可伸缩、跨平台的编程语言,它最初由Sun Microsystems于1995年公开发布,现在属于Oracle公司。Java语言具有以下特点:
1、面向对象:Java语言本质上是面向对象,所有的代码都是围绕对象和类来构建的。
2、平台无关性:Java编译器将Java代码转换为字节码,这样一来,代码就可以在不同的操作系统和硬件上运行,只需要安装适当的JVM(Java虚拟机)即可。
3、健壮性:Java具有严格的数据类型检查机制,自动内存管理和异常处理机制,使得程序具有更好的健壮性。
4、高性能:Java编译器可以将Java代码转换为最优的机器码,具有比解释执行更高的性能。
5、多线程支持:Java支持多线程编程,可以更好地利用多核处理器和共享资源。
二、基本语法
Java语言的基本语法包括变量、数据类型、运算符、控制语句、数组、类和对象等。
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
三、面向对象编程
Java是一种完全面向对象的语言,其核心思想是类和对象,所有的代码都是围绕这两个概念构建的。Java中每个类都有一个构造方法,用于创建对象实例。
Java中还有一些重要的概念,如封装、继承和多态。封装可以保护类中的数据不被外界直接访问,继承可以让子类拥有父类的属性和方法,多态可以提高代码的灵活性和可拓展性。
public class Animal { private String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + " is eating."); } } public class Dog extends Animal { public Dog(String name) { super(name); } public void bark() { System.out.println("Woof!"); } @Override public void eat() { System.out.println("The dog is eating loudly."); } } public class Main { public static void main(String[] args) { Animal animal = new Animal("Animal"); animal.eat(); Dog dog = new Dog("Dog"); dog.eat(); dog.bark(); } }
四、异常处理
Java中有异常处理机制,可以在代码中捕获和处理异常,避免程序崩溃。Java中的异常分为受检异常和非受检异常。受检异常需要在方法中显式声明,非受检异常则不需要。
public class Main { public static void main(String[] args) { try { int[] nums = new int[5]; nums[10] = 6; } catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组越界异常"); } finally { System.out.println("这里是finally块"); } } }
五、IO流
Java中的IO流用于处理文件读写和网络连接等操作。Java中的IO流分为字节流和字符流,字节流用来处理二进制数据,字符流用来处理文本数据。常用的IO流类有InputSteam、OutputSteam、Reader和Writer等。
public class Main { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("file.txt"); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); isr.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
六、网络编程
Java中的网络编程可以使用Socket实现,Socket可以建立客户端和服务器之间的通信连接。Java中还提供了一些实用的网络库,如Java NIO和Java Netty。
public class Client { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8888); OutputStream os = socket.getOutputStream(); os.write("Hello Server!".getBytes()); os.flush(); os.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } public class Server { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8888); Socket socket = serverSocket.accept(); InputStream is = socket.getInputStream(); byte[] bytes = new byte[1024]; int len; while ((len = is.read(bytes)) != -1) { System.out.println(new String(bytes, 0, len)); } is.close(); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }
七、多线程编程
Java中的多线程编程可以使用Thread类、Runnable接口和Callable接口实现。Java中还提供了一些实用的多线程库,如Java.util.concurrent和Java Executor框架。
public class MyThread extends Thread { @Override public void run() { System.out.println("MyThread is running."); } } public class Main { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); } }
八、Java框架
Java中有很多成熟的框架,如Spring、Hibernate和Struts等。这些框架可以让开发人员更加高效地构建Web应用程序和企业级应用程序。
@Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.getUserById(id); } @PostMapping public User addUser(@RequestBody User user) { return userService.saveUser(user); } } @Service public class UserService { @Autowired private UserRepository userRepository; public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } public User saveUser(User user) { return userRepository.save(user); } } @Repository public interface UserRepository extends JpaRepository { }
九、测试
Java中有很多测试框架,如JUnit和TestNG等。这些框架可以让开发人员更轻松地编写和运行单元测试和集成测试。
public class Calculator { public int add(int a, int b) { return a + b; } public int subtract(int a, int b) { return a - b; } } public class CalculatorTest { @Test public void testAdd() { Calculator calculator = new Calculator(); int result = calculator.add(1, 2); Assert.assertEquals(3, result); } @Test public void testSubtract() { Calculator calculator = new Calculator(); int result = calculator.subtract(3, 2); Assert.assertEquals(1, result); } }
原创文章,作者:AOAX,如若转载,请注明出处:https://www.506064.com/n/150203.html