• JAVA学习笔记(未完结)


    JAVA学习笔记

    java环境配置指路大佬文章:李培冠的博客

    非常详细的JDK+Tomcat的安装教程,跟着一步步做就对了,但我也安了很久,中间还是会因为一些不明原因的问题安不上,csdn基本能解决99%的问题

    学习参考资源:

    我是c语言起手的学习者,仅提供学习了基本c语言操作之后的学习视角。

    java基本语法

    详细基本语法请参考菜鸟教程以及教科书。

    个人归纳要点:

    • java是强类型的语言,类、对象、方法都有类型

    • 帮大家重点区分几个概念(以下内容在菜鸟教程里都有,我摘抄出来的)

      • 修饰符:在定义类、方法、变量时都会出现,会且只会定义这三个

        • 访问修饰符

          • default(即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

          • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

          • public : 对所有类可见。使用对象:类、接口、变量、方法

          • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

            附上表格一张,说明了访问权限

            修饰符 当前类 同一包内 子孙类(同一包) 子孙类(不同包) 其他包
            public Y Y Y Y Y
            protected Y Y Y Y/N(说明 N
            default Y Y Y N N
            private Y N N N N
        • 非访问修饰符

          • static:修饰类方法、类变量
          • final:修饰类、方法、变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
          • abstract:用来创建抽象类和抽象方法。
          • synchronized和volatile:主要用于线程的编程。
    • 面向过程的c在书写时,基本上都是一两千行的代码都写在同一个.cpp文件中。面向对象的java则基本都封装在不同的.java文件里,主程序可直接在同一个包的范围里调用其他.java文件中的类。

      如(该例由菜鸟教程提供,在教程中有详细说明):

      以下代码保存在名称为Employee.java的文件中

      package test1;
      public class Employee{
         String name;
         int age;
         String designation;
         double salary;
         // Employee 类的构造器
         public Employee(String name){
            this.name = name;
         }
         // 设置age的值
         public void empAge(int empAge){
            age =  empAge;
         }
         /* 设置designation的值*/
         public void empDesignation(String empDesig){
            designation = empDesig;
         }
         /* 设置salary的值*/
         public void empSalary(double empSalary){
            salary = empSalary;
         }
         /* 打印信息 */
         public void printEmployee(){
            System.out.println("名字:"+ name );
            System.out.println("年龄:" + age );
            System.out.println("职位:" + designation );
            System.out.println("薪水:" + salary);
         }
      }
      
      

      以下代码保存在EmpoyeeTest.java文件中

      package test1;
      public class EmployeeTest{
       
         public static void main(String[] args){
            /* 使用构造器创建两个对象 */
            Employee empOne = new Employee("RUNOOB1");
            Employee empTwo = new Employee("RUNOOB2");
       
            // 调用这两个对象的成员方法
            empOne.empAge(26);
            empOne.empDesignation("高级程序员");
            empOne.empSalary(1000);
            empOne.printEmployee();
       
            empTwo.empAge(21);
            empTwo.empDesignation("菜鸟程序员");
            empTwo.empSalary(500);
            empTwo.printEmployee();
         }
      }
      

      运行主函数,输出结果:

      名字:RUNOOB1
      年龄:26
      职位:高级程序员
      薪水:1000.0
      名字:RUNOOB2
      年龄:21
      职位:菜鸟程序员
      薪水:500.0
      
    • 运算符基本和c一致

      学到的新东西:

      • ​ 短路逻辑运算符:当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

        public class LuoJi{
            public static void main(String[] args){
                int a = 5;//定义一个变量;
                boolean b = (a<4)&&(a++<10);
                System.out.println("使用短路逻辑运算符的结果为"+b);
                System.out.println("a的结果为"+a);
            }
        }
        
      • instanceof运算符:该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。摘抄如下

        使用格式:

        ( Object reference variable ) instanceof  (class/interface type)
        

        如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

        下面是一个例子:

        String name = "James";
        boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
        

        如果被比较的对象兼容于右侧类型,该运算符仍然返回true。

        看下面的例子:

        class Vehicle {}
         
        public class Car extends Vehicle {
           public static void main(String[] args){
              Vehicle a = new Car();
              boolean result =  a instanceof Car;
              System.out.println( result);
           }
        }
        

        以上实例编译运行结果如下:

        true
        
    • 循环和c一致,在对于数组的处理上多了一个增强型的for循环

      语法格式

      for(声明语句 : 表达式)
      {
         //代码句子
      }
      

      对于数组s[N]来说相当于一个

      for(int i=0;i<lenth(s[N]);i++)
      

      用法实例

      public class Test {
         public static void main(String[] args){
            int [] numbers = {10, 20, 30, 40, 50};
       
            for(int x : numbers ){
               System.out.print( x );
               System.out.print(",");
            }
            System.out.print("\n");
            String [] names ={"James", "Larry", "Tom", "Lacy"};
            for( String name : names ) {
               System.out.print( name );
               System.out.print(",");
            }
         }
      }
      

    条件语句、switch case|和c完全一致

    各种包装类划分:Number&Math类,Character类,String类和StringBuffer类

    • Number类(类方法大概包含:数据类型转换、比大小以及是否相等、对象初始化、进制转换)

      • 包括对应基本数据类型的各种类

        Java Number类

        使用时基本上有两种情况:

        public class Test{
            public static void main(String args[]){
                Integer x = 5;
        
                System.out.println(x.toString());  //以x类调用类方法
                System.out.println(Integer.toString(12)); //以Integer类调用类方法
            }
        }
        
      • Math(类方法大概包含求绝对值、高斯函数(ceil和floor)、最大最小值、求对数、三角函数和角度弧度)

        基本上都是以Math类调用类方法

        public class Test{
            public static void main(String args[]){
                Integer a = -8;
                double d = -100;
                float f = -90f;    
                                                       
                System.out.println(Math.abs(a));
                System.out.println(Math.abs(d));    
                System.out.println(Math.abs(f));    
            }
        }
        
      • Character类(类方法大概包含判断是否是字母、数字、空白以及大小写,指定字母大小写,将字符转为长度为1的字符串)

        基本上都是以character调用类方法

        public class Test {
         
            public static void main(String args[]) {
                System.out.println(Character.isWhitespace('c'));
                System.out.println(Character.isWhitespace(' '));
                System.out.println(Character.isWhitespace('\n'));
                System.out.println(Character.isWhitespace('\t'));
            }
        }
        
      • String方法

  • 相关阅读:
    一步步实现ABAP后台导入EXCEL到数据库【1】
    CSS边框及常用样式
    CSS优先级
    CSS选择器
    label和fieldset标签
    img、列表和table标签
    a标签--超链接
    select标签和多行文本标签
    input标签
    body内常用标签
  • 原文地址:https://www.cnblogs.com/kenneth2012/p/16003762.html
Copyright © 2020-2023  润新知