一带而过-Java与生活

简介: 一带而过-Java与生活

认识Java


0-0 前言


课程基础: C语言教程(全网最具有比喻形象的)-Frank-FuckPPT


  • 学Java前需要学C,至少学到结构体,C语言课程是基础


  • 指针、算法、数据结构不好也没关系,师父领进门,修行靠个人


1-1 Java是怎么执行的?说好的exe呢?


对比Java与C构建模式


JAVA C
java执行时会生成.class文件 C执行的时候会生成.exe文件(win)
java要运行必须有jdk、jre和jvm C执行的时候不需要这些文件
java.class跨平台效果好 C.exe跨平台效果不好(win)


  • jdk(Java Development Kit): java程序开发工具包


  • jre(Java runtime environment): java运行环境


  • jvm(Java Virtual Machine): java虚拟机


1-2 package


Java package 如同文件夹一样,工程文件主要分为ideaoutsrcweb四个大包


1.idea文件夹


  • .idea存放项目的配置信息,包括历史记录,版本控制信息等


2.iml文件夹


  • iml(infomation of module)是IntelliJ IDEA 自动创建的模块文件


  • 用于Java应用开发,存储一些模块开发相关的信息,还可能会存储一 些模块路径信息, 依赖信息以及别的一些设置


3.src文件夹


  • source,存放的是项目的源文件(.java后缀与配置文件)


  • 分成几个包的目的:对代码的优化、实现高聚合、低耦合特点、便于以后的扩展和更改


4.External Libraries


  • Java外部库


5.Scratches and Consoles


  • Intellij IDEA 提供了两种临时的文件编辑环境,两种 Scratches 分别是Scratch filesScratch buffers


Scratch files :Scratch files 有着完整的运行和 debug 功能等等,这些文件需要指定编程语言类型并且指定后缀。


Scratch buffers : Scratch buffers仅仅是为了简单的编辑记录,所以不需要指定编程语言并且指定后缀,默认文件类型是 .txt。需要注意的是,Scratch buffers最多只能创建 5 个,超过 5 个将开始重用以前的,并且以前文件的内容会被重置。


6.项目视图


默认是将package层级以简洁显示的,非精简模式



packages单击右键,点击Compact Middle Packages即可切换成精简模式




1-3 第一个程序的讲解


package com.microsoft.demo; //定位你的Java代码放在src文件夹下的位置
//公共的  类   类名(开头字母必须大写和文件名相同)
public class Main{ 
    //mian函数的固定格式
    public static void main(String[] args){
        //语句
        System.out.println("Hello");
    }
    //java函数
    public static int sum(int number_a,int number_b){
        return number_a+number_
    }
    //函数的调用和C是一样的
}


ctrl+alt+v 在调用函数的时候自动生成变量


.soutv 打印最靠近的变量,也可以是你自己选定的变量


参考: IDEA——JAVA的快捷语法


1-4 注释和文档


1.基本注释


  • 和C语言一样有单行注释和段落注释


  • 单行注释 // ……


  • 多行注释 /* ...... */ 注释内容不会出现在javadoc 生成的文档中


2.方法注释和类注释


  • 即文档注释 : /** ...... */ 注释内容写入javadoc生成的文档


  • 注释格式/** ...... */里面的内容有介绍函数,还有方法中用到的参数和返回值


  • 这个可以快速生成一个方法文档(想要生成文档可以在快捷键里查doc)


  • IntelliJ IDEA 里查看一个函数注释的方法是 ctrl+q


2-0 一带而过


参考:





2-1 字符串演示


C语言如何定义字符串?


char data[3] = {'a', 'b', 'c'};
char data[] = {'a', 'b', 'c', '\0'};
char data[] = "abc";


Java如何定义字符串?


String s1 = "Hello World!";                 
String s2 = new String("Hello World!");


  • String是java中定义字符串的类,方便快捷,使用面向对象的方式还有很多骚操作


  • 获取字符串长度:字符串名.length()


  • 使用.concat()连接字符串


  • 使用+连接字符串


2-2 字符串结束符的那些事儿


C语言种的字符串是怎样的?


  • C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串


  • 字符串本质上就是以'\0'作为结尾的特殊字符数组


  • 因此当把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志


为什么Java里没有/0?


  • 严格控制字符串,防止内存泄漏


  • 这是Java为了保护程序以及开发者友好,强制并自动为我们加了'\0'


2-3 自动类型那些事儿


自动类型转换


  • 整型、实型(常量)、字符型数据可以混合运算


  • 运算中,不同类型的数据先转化为同一类型,然后进行运算


  • 小品《主角与配角》象征性代表了int取代char的地位


低  ------------------------------------>  高
byte,short,char—> int —> long—> float —> double 


2-4 import导包和API文档


  • import和C中的#include一样,导入一些自带的方法


  • 有一些包中的函数是不需要导入的,使用同一个package下的包不需要import


  • java.lang.*是java默认自带的


2-5 Java中的数组


对比C和Java静态数组定义方式


定义方式 Java C
初始化法 int[ ] arr ={1,2,3} int arr [] = {1,2,3}
分配空间法 Type[] arr=new Type[size] int arr[size]


普通的静态数组有缺陷:长度是固定的,不能扩容,没有灵活性


注意:String的length带括号,数组里的length不带括号


str.length();
arr.length;


增强for循环


for (int i: arr_2) {
     System.out.println(arr_2[i]);
}


for(double element:myList){
  System.out.println(element);
}


2-6-1 Arrays第一讲


提供方法对数组进行操作,练习以后记录笔记


例如:排序sort()


int[] arr_1 = {1, 2, 3, 6, 7, 8,111,1111,112,1235,123};
        Arrays.sort(arr_1);
        for (int element:arr_1) {
            System.out.print(element + " ");
        }


2-6-2 Arrays第二讲


例如:二分查找 Arrays.binarySearch(arr_1,6)


    int result_index = Arrays.binarySearch(arr_1,6);
        System.out.println("result_index = " + result_index);


相同顺序下,数组是否相等Arrays.equals(arr_1, arr_2)


    int[] arr_1 = {1,2,3};
        int[] arr_2 = {1,2,3};
        boolean b = Arrays.equals(arr_1, arr_2);
        System.out.println("b = " + b);


2-7-1 函数和方法


什么是方法?


  • Java方法是语句的集合,它们在一起执行一个功能


  • 方法和C里的函数是一模一样的


参考:



2-7-2 方法的重载


方法名相同,参数个数或者参数类型不同


package com.microsoft.demo;
import java.util.Arrays;
public class main {
    public static void main(String[] args) {
        int sum = sum(1, 2);
        double value = sum(1.2 , 3.4);
        System.out.println("sum = " + sum);
        System.out.println("value = " + value);
    }
    public static int sum (int x, int y){
        return x + y;
    }
    public static double sum ( double x, double y){
        return x + y;
    }
}


2-8-1 规范约束第一讲


详见:阿里巴巴Java开发手册-alibaba/p3c


2-8-2 规范第二课


2-8-3 规范约束第三讲


目录
相关文章
|
11天前
|
Java 开发者
Java“UnsupportedEncodingException”解决
在Java编程中,“UnsupportedEncodingException”是一个常见的异常,通常发生在处理字符编码时。本文将介绍该异常的原因、常见场景及解决方法,帮助开发者有效应对字符编码问题。
|
6月前
|
人工智能 算法 Java
约数个数(c++, java)
约数个数(c++, java)
36 0
|
监控 Dubbo 安全
JAVA问答8
JAVA问答8
104 0
|
Oracle Java 关系型数据库
什么是java
什么是java
118 0
1088 三人行(JAVA)
子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”
1088 三人行(JAVA)
|
小程序 Oracle Java
Java小史:从0到1
简单介绍下java的历史
200 0
Java小史:从0到1
|
数据安全/隐私保护 Android开发
java32-巩固练习
java32-巩固练习
108 0
java32-巩固练习
|
Java 程序员 C语言
Java是什么
ava到底是啥?它能干什么? 自己也看过不少的课程和书,大部分都是从Java的发展史开始讲,总之就是那些什么Java历史悠久,Java很优秀,Java越来越牛,用的人越来越多,什么编程语言排行榜常年第一,大致都是这些,然后再扯些其他的,接着就上起了Hello World!就这样,你Java生涯的第一个代码开始了,意思是“你好,世界!” 我还是想不通,Java是啥,能干嘛,能不能先告诉我? 可能你在刚开始学习Java的时候也有这样的疑惑,那么你会怎么做呢?你不知道啊,怎么办?问别人?不,你应该会想到百度,不是说 百度一下,你就知道吗? 好嘞,我们上百度看看去: 640?wx_fmt=
185 0
|
缓存 分布式计算 自然语言处理
重新来理解一下Java是什么(下)
阿粉?阿粉?阿粉?阿粉在哪里,项目经理今天发现阿粉没来,一时间很生气,心里盘算回来一定要让阿粉知道自己不是好惹的?可是阿粉去了哪里呢?阿粉受不鸟这个公司了,太 TM XXX了,阿粉出来面试了!!!阿粉心想一定要找到一个好工作!!!
重新来理解一下Java是什么(下)
|
Java 关系型数据库