目錄
安裝JDK
1.官網下載JDK文件
https://www.oracle.com/technetwork/java/javase/downloads/index.html
安裝最新版本,點擊download即可
2.設置環境變量
以Win10爲例:計算機 鼠標右鍵點擊屬性-->高級系統設置-->環境變量-->系統變量一欄,點擊新建,增加名爲JAVA_HOME的環境變量,值爲JDK的安裝地址,再找到Path環境變量,添加%JAVA_HOME%\bin
配置完成之後,cmd打開命令提示符窗口,輸入java --version查看版本,顯示以下信息說明安裝成功。
編寫Java程序
Java源碼本質上是一個文本文件,需要用javac(編譯器)
把xxx.java文件
編譯成字節碼文件xxx.class:javac xxx.java
,然後,用java
命令執行這個字節碼文件:java xxx
- 一個Java源碼只能定義一個
public
類型的class,並且class名稱和文件名要完全一致; - Java規定,某個類定義的
public static void main(String[] args)
是Java程序的固定入口方法,因此,Java程序總是從main
方法開始執行。 - Java源碼的縮進不是必須的。
安裝Eclipse
https://www.eclipse.org/downloads/packages/,根據需求選擇相應版本下載,此處選擇Eclipse IDE for java Developers
下載完成之後,解壓,雙擊eclipse.exe文件即可打開(在此之前需要配置好JDK環境)
之後根據需求修改eclipse的默認配置:
General > Editors > Text Editors --> 鉤上“Show line numbers”,這樣編輯器會顯示行號;
General > Workspace --> 鉤上“Refresh using native hooks or polling”,這樣Eclipse會自動刷新文件夾的改動;
對於“Text file encoding”,如果Default不是UTF-8
,一定要改爲“Other:UTF-8”,所有文本文件均使用UTF-8
編碼;
對於“New text file line delimiter”,建議使用Unix,即換行符使用\n
而不是Windows的\r\n
。
HelloWorld程序
Eclipse--> File-->New-->Java Project,創建HelloWorld程序。
展開HelloWorld工程文件-->src--->右鍵-->New-->Class,在Hello.java文件中寫入代碼:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
選中左側Hello.java文件-->右鍵-->Run As--> Java Application
即可在Console窗口看到運行結果
整數轉二進制
int n= 8;
var s=new StringBuilder();
s.append(n%2);
n/=2;
while(n!=0) {
s.insert(0, n%2);
n/=2;
}
return s; //1000
簡潔版:
String s="";
for (int n=N; n>0; n/=2)
s = s + (n%2);
二分法
public class Hello {
public static void main(String[] args) {
int[]a = {1,2,5,5,5,5,5};
int m=rank1(5,a);
int n=rank(5,a);
int c=count(5,a);
System.out.println(c);
System.out.println(m);
System.out.println(n);
}
public static int rank(int key, int[] a) {//二分法
int l=0;
int h=a.length-1;
while(l<=h) {
int mid=(l+h)/2;
if(key<a[mid])
h=mid-1;
else if(key>a[mid])
l=mid+1;
else
return mid;
}
return -1;
}
public static int rank1(int key, int[] a) {//二分法 輸出小於key的個數
int l=0;
int h=a.length-1;
while(l<=h) {
int mid=(l+h)/2;
if(key<a[mid])
h=mid-1;
else if(key>a[mid])
l=mid+1;
else
{
while(key==a[mid-1])
mid--;
return mid;
}
}
return -1;
}
public static int count(int key, int[] a) {//二分法 輸出等於key的個數
int l=0;
int h=a.length-1;
while(l<=h) {
int mid=(l+h)/2;
if(key<a[mid])
h=mid-1;
else if(key>a[mid])
l=mid+1;
else
{
int m=mid;
int count=1;
while(key==a[mid-1]) {
count++;
mid--;
}
while((m+1<a.length)&&key==a[m+1]) {
count++;
m++;
}
return count;
}
}
return -1;
}
}
===============================================================================
5
2
3
參考:https://www.liaoxuefeng.com/wiki/1252599548343744/1255878730977024