一、Java基础
Java是一门简单、安全、可移植、面向对象、高性能、健壮的编程语言。其语法易于阅读和编写,是开发企业级应用的首选语言之一。
Java变量和数据类型
Java有八种基本数据类型,分别为byte、short、int、long、float、double、char和boolean。变量是用于存储数据的存储空间,可以为变量指定数据类型。在Java中,变量有局部变量、类变量和实例变量。
public class Test { // Java中的类变量 static int count = 0; // Java中的实例变量 String name; public void run() { // Java中的局部变量 int i = 0; } }
Java流控制语句
Java中的流控制语句包括if/else、switch、for、while和do/while语句。
public class Test { public static void main(String[] args) { // if/else语句 int num = 10; if (num > 0) { System.out.println("num is positive"); } else { System.out.println("num is zero or negative"); } // switch语句 int dayOfWeek = 3; switch (dayOfWeek) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; default: System.out.println("Other day"); break; } // for循环 for (int i = 0; i < 10; i++) { System.out.println(i); } // while循环 int i = 0; while (i < 10) { System.out.println(i); i++; } // do/while循环 int j = 0; do { System.out.println(j); j++; } while (j < 10); } }
二、Java面向对象编程
Java是一门面向对象的编程语言,其基本概念包括类、对象、继承、封装和多态。
Java类的定义
Java通过class关键字定义类,类中包含属性和方法。
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public void sayHello() { System.out.println("Hello, my name is " + name + ", I'm " + age + " years old."); } }
Java对象的创建和使用
Java通过new关键字创建对象,并通过点操作符访问对象的属性和方法。
public class Test { public static void main(String[] args) { Person person = new Person("Tom", 20); person.sayHello(); } }
Java继承
Java使用extends关键字实现继承。
public class Student extends Person { private String school; public Student(String name, int age, String school) { super(name, age); this.school = school; } public void sayHello() { System.out.println("Hello, my name is " + name + ", I'm " + age + " years old, and I study at " + school + "."); } }
Java封装
Java通过访问修饰符实现封装,将类的属性和方法隐藏起来,只允许通过公共方法进行访问。
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }
Java多态
Java通过方法重写和方法重载实现多态。
public class Animal { public void move() { System.out.println("I'm moving"); } } public class Dog extends Animal { public void move() { System.out.println("I'm running"); } public void bark() { System.out.println("Woof!"); } } public class Test { public static void main(String[] args) { Animal animal1 = new Animal(); Animal animal2 = new Dog(); animal1.move(); animal2.move(); Dog dog = new Dog(); dog.bark(); } }
三、Java高级特性
Java还有许多高级特性,如异常处理、反射、注解、泛型、并发编程等。
Java异常处理
Java通过try/catch/finally语句处理异常。
public class Test { public static void main(String[] args) { try { // 可能抛出异常的代码 } catch (Exception ex) { // 异常处理代码 } finally { // finally代码块中的代码始终会被执行 } } }
Java反射
Java反射可以在程序运行时动态获取类的信息,并且创建类的对象、调用类的方法和访问类的属性。
public class Test { public static void main(String[] args) throws Exception { // 获取类的信息 Class clazz = Class.forName("java.lang.String"); System.out.println("Class name: " + clazz.getName()); // 创建类的对象 Object obj = clazz.newInstance(); // 调用类的方法 Method method = clazz.getMethod("toUpperCase"); String result = (String) method.invoke(obj); System.out.println("Result: " + result); // 访问类的属性 Field field = clazz.getDeclaredField("value"); field.setAccessible(true); char[] value = (char[]) field.get(obj); value[0] = 'H'; System.out.println("Modified string: " + obj); } }
Java注解
Java注解是一种在程序代码中添加元数据的方式,它可以用于描述类、属性、方法和参数。
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Range { int min() default 0; int max() default 100; } public class Person { @Range(min = 18, max = 60) private int age; public void setAge(int age) { this.age = age; } } public class Test { public static void main(String[] args) throws Exception { Field field = Person.class.getDeclaredField("age"); Range range = field.getAnnotation(Range.class); System.out.println("Min: " + range.min()); System.out.println("Max: " + range.max()); } }
Java泛型
Java泛型是一种将类型参数化的方式,它可以在编译时检查类型的合法性,并且在运行时不会出现类型转换异常。
public class Stack { private List list = new ArrayList(); public void push(T element) { list.add(element); } public T pop() { int index = list.size() - 1; T element = list.get(index); list.remove(index); return element; } } public class Test { public static void main(String[] args) { Stack stack = new Stack(); stack.push("hello"); stack.push("world"); System.out.println(stack.pop()); System.out.println(stack.pop()); } }
Java并发编程
Java并发编程可以提高程序的效率和性能,但同时也会带来一些线程安全的问题,如死锁和数据竞争等。
public class Counter { private int count = 0; public synchronized void increment() { count++; } public synchronized int getCount() { return count; } } public class Test { public static void main(String[] args) throws Exception { Counter counter = new Counter(); Thread thread1 = new Thread(new Runnable() { public void run() { for (int i = 0; i < 1000000; i++) { counter.increment(); } } }); Thread thread2 = new Thread(new Runnable() { public void run() { for (int i = 0; i < 1000000; i++) { counter.increment(); } } }); thread1.start(); thread2.start(); thread1.join(); thread2.join(); System.out.println(counter.getCount()); } }
四、总结
Java是一门功能强大、适用广泛的编程语言,其高度的可移植性和丰富的开发库为开发者提供了快速开发企业级应用的能力。开发者应该扎实掌握Java的基础知识和面向对象编程思想,并深入学习Java的高级特性,如异常处理、泛型和并发编程等。
原创文章,作者:TUORS,如若转载,请注明出处:https://www.506064.com/n/369363.html