目录
安装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